用空字符串替换Java括号

Eri*_*yan 6 java string replace

为什么第一行不用空字符串替换“(”,而第二行呢?

 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);
 }
Run Code Online (Sandbox Code Playgroud)

Era*_*ran 3

为了replace工作,你应该写:

a=a.replace("(",""); //First
Run Code Online (Sandbox Code Playgroud)

或者replaceAll如果你想传递一个regex

a=a.replaceAll("\\(",""); //First
Run Code Online (Sandbox Code Playgroud)

replace接受要替换的字符序列:

public String replace(CharSequence target, CharSequence replacement)
Run Code Online (Sandbox Code Playgroud)

因此,在您的情况下,它会尝试替换 3 个字符“\(”,而不仅仅是单个字符“(”。