public class UUUU { public static void main(String[] args) {
String str = "2.id,2.id2,2.uu,2.zz";
    str = str.replaceAll("2.", "");
    System.out.println(str);
}}
//想得到的字符串是id,id,uu,zz
//真正得到的却是id,iduu,zz
//怪了(用的是jre1.6.0_05),难道是jre1.6.0_05的bug?

解决方案 »

  1.   

    .包括逗号. Any character (may or may not match line terminators) 
      

  2.   

    String str = "2.id,2.id2,2.uu,2.zz"; 
    String str = "2.id,2.id2,2.uu,2.zz"; 
    红色2后有“.”吗??
    有点奇怪,就算没点输出也应该是id,id2,uu,zz 才对啊?
    ??
      

  3.   

    .在正则表达式里面是特殊字符,代表任意一个字符,如果你用.?,说明任意一字符出现一次或者不出现,用.+说明出现一次或多次,用.*说明出现零次或多次,如果要在正则表达式过来"."这个字符需要转义,用\.,然而在java里面\字符也需要转移,所以经过两次转义,你的过滤应该是replaceAll("2\\.",str);