Why String.replaceAll() don't work on this String ?

Posted by Aloong on Stack Overflow See other posts from Stack Overflow or by Aloong
Published on 2010-04-29T05:42:58Z Indexed on 2010/04/29 5:47 UTC
Read the original article Hit count: 373

Filed under:
|
|
    //This source is a line read from a file 
    String src = "23570006,music,**,wu(),1,exam,\"Monday9,10(H2-301)\",1-10,score,";

    //This sohuld be from a matcher.group() when Pattern.compile("\".*?\"")
    String group = "\"Monday9,10(H2-301)\"";

    src = src.replaceAll("\"", "");
    group = group.replaceAll("\"", "");

    String replacement = group.replaceAll(",", "#@");
    System.out.println(src.contains(group));
    src = src.replaceAll(group, replacement);
    System.out.println(group);
    System.out.println(replacement);
    System.out.println(src);

I'm trying to replace the "," between \"s so I can ues String.split() latter.

But the above just not working , the result is:

true
Monday9,10(H2-301)
Monday9#@10(H2-301)
23570006,music,**,wu(),1,exam,Monday9,10(H2-301),1-10,score,

but when I change the src string to
String src = "123\"9,10\"123";
String group = "\"9,10\"";

It works well
true
9,10
9#@10
1239#@10123

What's the matter with the string???

© Stack Overflow or respective owner

Related posts about java

Related posts about string