为什么第一行没有用空字符串替换“(”,而第二行呢?
public static void main(String []args){
String a="This(rab)(bar)";
a=a.replace("\\(",""); //First
String b=a.replaceFirst("\\(","");//Second
System.out.println(a + " "+b);
}
最佳答案
replace
之间是有区别的和 replaceFirst
.如果您的 IDE 向您显示方法签名,您将看到:
看看 replace
如何接受普通的旧 target
而 replaceFirst
如何接受 regex
?
"\\("
是一个 regex,意思是“一个左括号”。replace
不会处理您传递的字符串in 作为正则表达式。它只会尝试查找一个反斜杠后跟一个左括号,这在您的字符串中不存在。
如果要使用替换
,只需使用"("
即可。
关于Java括号替换为空字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55086135/