3 回答

TA贡献2021条经验 获得超8个赞
为了工作,你应该写:replace
a=a.replace("(",""); //First
或者如果要传递 :replaceAll
regex
a=a.replaceAll("\\(",""); //First
replace
接受要替换的字符序列:
public String replace(CharSequence target, CharSequence replacement)
因此,在您的情况下,它会尝试替换3个字符“\(”,而不仅仅是单个字符“(”)。

TA贡献1946条经验 获得超3个赞
问题是它运行在几个字符中,因此,它将查找的是 和 ,因此不会发生这种情况,引号应仅包含要替换的字符:replace\(
a = a.replace("(", ""); // First
接下来,我用原始提案和固定提案留下狙击手:
public class Main {
private static final Main initRun = new Main();
public static void main(String[] args) {
String a = "This(rab)(bar)";
System.out.println("Original");
initRun.runOriginal(a);
System.out.println("Fixed");
initRun.runFixed(a);
// Output
// Original
// This(rab)(bar)
// Thisrab)(bar)
// Fixed
// Thisrab)bar)
// Thisrab)bar)
}
/**
* Execute the original proposal
*
* @param a String for replace
*/
void runOriginal(String a) {
a = a.replace("\\(", ""); // First
String b = a.replaceFirst("\\(", "");// Second
System.out.println(a + "\n" + b);
}
/**
* Execute the fixed proposal
*
* @param a String for replace
*/
void runFixed(String a) {
a = a.replace("(", ""); // First
String b = a.replaceFirst("\\(", "");// Second
System.out.println(a + "\n" + b);
}
}
添加回答
举报