1

我正在尝试将包含 " 的字符串替换为 \" ,下面是我尝试过的程序

    String s="\"/test /string\"";
    s = s.replaceAll("\"", "\\\"");
    System.out.println(s);

但我得到与字符串“/test /string”相同的输出。为什么我的替换功能不起作用。如果我做

   s = s.replaceAll("\"", "\\\\\"");

然后我得到我想要的输出 \"/test /string\" 。为什么以前的 dint 工作,即使在代码中我试图用 \ 替换“”

4

1 回答 1

10

您正在使用String.replaceAll,它将正则表达式作为其输入,包括替换。如记录在Match.replaceAll()

请注意,替换字符串中的反斜杠 (\) 和美元符号 ($) 可能会导致结果与将其视为文字替换字符串时的结果不同。

您实际上只是在尝试直接替换而不涉及正则表达式,因此请String.replace改用:

s = s.replace("\"", "\\\"");
于 2012-10-10T09:17:16.183 回答