日期:2014-05-20 浏览次数:20997 次
public class MyTest
{
public static void main(String[] args)
{
String str1="s()()();s()()();s()()();s()()();";
str1 = str1.replaceFirst("s()()();","");
str1 = str1.replaceFirst("s()()();","");
str1 = str1.replaceFirst("s()()();","");
str1 = str1.replaceFirst("s()()();","");
System.out.println(str1);
}
}
public class MyTest
{
public static void main(String[] args)
{
String str1="()()();()()();()()();()()();";
str1 = str1.replaceFirst("()()();","");
str1 = str1.replaceFirst("()()();","");
str1 = str1.replaceFirst("()()();","");
str1 = str1.replaceFirst("()()();","");
System.out.println(str1);
}
}
String str1="s()()();s()()();s()()();s()()();";
str1 = str1.replaceFirst(java.util.regex.Pattern.quote("s()()();"),"");
str1 = str1.replaceFirst(java.util.regex.Pattern.quote("s()()();"),"");
str1 = str1.replaceFirst(java.util.regex.Pattern.quote("s()()();"),"");
str1 = str1.replaceFirst(java.util.regex.Pattern.quote("s()()();"),"");
System.out.println(str1);
------解决方案--------------------
Java没有Bug,只是你对这个方法理解有误!
String java.lang.String.replaceFirst(String regex, String replacement)
看看参数regex的说明,它是一个正则表达式。
“()”在正则表达式中有特殊的含义,代表一个块。
str1 = str1.replaceFirst("s()()();","");
//就相当于
str1 = str1.replaceFirst("s;","");
//因为你块中没有任何东西
//同样
str1 = str1.replaceFirst("()()();","");
//相当于
str1 = str1.replaceFirst(";","");
//因此,想要得到正确的结果(替换掉“s()()();”的话),这样就可以了
str1 = str1.replaceFirst("s\\(\\)\\(\\)\\(\\);","");
------解决方案--------------------
楼上2位(goldenfish1919和katasoft)正解。
------解决方案--------------------