替换双引号(")

4

这是我的字符串的样子:

sTest = AAAAA"1111

我希望将双引号替换为反斜杠和双引号(\")

我需要这种字符串形式

sTest = AAAAA\"1111
4个回答

3
String escaped = "AAAAA\"1111".replace("\"", "\\\"");

(注意,replaceAll版本处理正则表达式,在这种特定情况下是过度的。)


2

string.replace("\"", "\\\"")

你想要用\"替换"。由于"\都有特定的含义,因此必须正确地转义它们,即在每个字符前面添加一个\
所以," --> \"\" --> \\\"。 并且由于你想让编译器理解这是一个字符串,所以你需要用双引号将每个字符串包起来。所以" --> \""\"" --> "\\\""

感谢Ronk的建议。 - Binaya
当您想要将 " 替换为 " 时,您还需要将所有其他 \ 替换为 \\。因此,答案可能应该是:string.replaceAll("([\\\\\"])", "\\\\$1")(用 \$1 替换 \ 和 ",其中 $1 是正则表达式中匹配的字符串)。 - Adrien

1

虽然其他答案对于给定的单一情况是正确的,但对于更复杂的情况,您可能希望使用Apache Commons Lang中的StringEscapeUtils.escapeJava(String)

String escaped = StringEscapeUtils.escapeJava(string);

0
System.out.println("AAAAA\"1111".replaceAll("\"", "\\\\\""));

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接