大家看看这两个程序输出什么,是不是应该输出一样的结果,可是实际上输出的结果是不一样的(1)第一个
import java.util.*;
public class SMS
{
public String compress(String ms)
{
String rex="([a-zA-Z&&[^aAeEIiOoUu]])([aAeEIiOoUu]+)([a-zA-Z&&[^aAeEIiOoUu]])";
String t= ms.replaceAll(rex,"$1$3");

return t;

}
public static void main(String[] args)
{
SMS tt = new SMS();
String ss="Lets meet tomorrow";
System.out.println(tt.compress(ss));
}
}(2) 第二个import java.util.*;
public class SMS
{
public String compress(String ms)
{
String rex="([a-zA-Z&&[^aAeEIiOoUu]])([aAeEIiOoUu]+)([a-zA-Z&&[^aAeEIiOoUu]])";
String t= ms.replaceAll(rex,"$1$3");
t=t.replaceAll(rex,"$1$3");
return t;

}
public static void main(String[] args)
{
SMS tt = new SMS();
String ss="Lets meet tomorrow";
System.out.println(tt.compress(ss));
}
}

解决方案 »

  1.   

    Lts mt tmorrw
    Lts mt tmrrw
    奇怪了,奇怪,两个程序不是一样的吗?再仔细看看。。
      

  2.   

    不是bug了??
    楼主能解释下两者有何不同?
      

  3.   

    两个程序就不一样的,下面是比较的结果。
    正在比较文件 a.txt 和 B.TXT
    ***** a.txt
                    String t= ms.replaceAll(rex,"$1$3");
                    
                    return t;
    ***** B.TXT
                    String t= ms.replaceAll(rex,"$1$3");
                    t=t.replaceAll(rex,"$1$3");
                    return t;
    *****