这是我的字符串的样子:
sTest = AAAAA"1111
我希望将双引号替换为反斜杠和双引号(\"
)
我需要这种字符串形式
sTest = AAAAA\"1111
String escaped = "AAAAA\"1111".replace("\"", "\\\"");
String.replace
的API文档(注意,replaceAll
版本处理正则表达式,在这种特定情况下是过度的。)
string.replace("\"", "\\\"")
\"
替换"
。由于"
和\
都有特定的含义,因此必须正确地转义它们,即在每个字符前面添加一个\
。"
--> \"
,\"
--> \\\"
。
并且由于你想让编译器理解这是一个字符串,所以你需要用双引号将每个字符串包起来。所以"
--> \"
,"\""
--> "\\\""
。虽然其他答案对于给定的单一情况是正确的,但对于更复杂的情况,您可能希望使用Apache Commons Lang中的StringEscapeUtils.escapeJava(String)。
String escaped = StringEscapeUtils.escapeJava(string);
System.out.println("AAAAA\"1111".replaceAll("\"", "\\\\\""));
string.replaceAll("([\\\\\"])", "\\\\$1")
(用 \$1 替换 \ 和 ",其中 $1 是正则表达式中匹配的字符串)。 - Adrien