我刚刚浪费了 1 个小时来跟踪我认为replaceAll/replaceFirst
在 String 类中不正常的行为。
如果替换字符串中有反斜杠,则替换时将其删除。然后我读到你可以用它Matcher.quoteReplacement(String)
来创建一个正确的替换字符串,但我的问题是为什么?Patter.quote(String)
如果您不想要特殊含义,我可以期望第一个参数应该被转义,但我没有看到更改替换的理由:(
是的,我将开始使用 replace(CharSequence,CharSequence),只是想知道为什么:)
这是一个清楚地显示“奇怪”行为的示例:
public static void main(String[] args) {
String out = "\\\\test\\\\";
System.out.println(out);
String result = "a".replaceAll("a", out);
System.out.println(result);
}
注意第二行只有一个反斜杠,而不是第一行的两个反斜杠