3 回答
TA贡献1826条经验 获得超6个赞
replace对你replaceAll有用,使用正则表达式,\\是特殊字符的前缀,比如\\s空格,\\.任何字符等。
String test = "paloalto\\paloalto\\";
test = test.replace("paloalto\\", "sanhose\\");
System.out.println(test);
因为replaceAll您可以将 的结果Pattern.quote用作第一个参数,将 的结果Matcher.quoteReplacement用作第二个参数:
test = test.replaceAll(Pattern.quote("paloalto\\"), Matcher.quoteReplacement("sanjose\\"));
TA贡献1818条经验 获得超8个赞
您需要四个反斜杠:两个反斜杠用于在 Java 中声明字符串(这将是实际字符串中的一个反斜杠),并且您需要在正则表达式中使用两个反斜杠,因为反斜杠再次是正则表达式引擎的特殊字符:
original.replaceAll("paloalto\\\\", "sanjose\\\\");
Pattern.quote()
如果你觉得这更容易阅读,你可以使用:
original.replaceAll(Pattern.quote("paloalto\\"), Matcher.quoteReplacement("sanjose\\"));
TA贡献1909条经验 获得超7个赞
您需要使用正则表达式来替换所有函数,而 \(backspace) 是 java 中的转义字符。这就是为什么您需要重复 4 次才能捕获字符串的原因。
String original = "paloalto\\adam paloalto\\jack paloalto\\justin";
System.out.println("original = " + original);
String sanjose = original.replaceAll("paloalto\\\\", "sanjose\\\\");
System.out.println("backgammon = " + sanjose);
这个剪辑会做你想做的。它的输出是
original = paloalto\adam paloalto\jack paloalto\justin
backgammon = sanjose\adam sanjose\jack sanjose\justin
添加回答
举报