Java字符串替换"用\"

时间:2016-03-10 06:16:14

标签: java string

我必须更换"用\"在java中,我试过

String.replaceall(" \""" \\\"&#34)

但它有效吗

提前致谢

2 个答案:

答案 0 :(得分:4)

假设您需要文字\,那么您需要在正则表达式中将其转义(棘手的部分是\本身就是转义字符)。你可以做点什么,

String msg = "\"Hello\"";
System.out.println(msg);
msg = msg.replaceAll("\"", "\\\\\"");
System.out.println(msg);

输出(表示更改" s)

"Hello"
\"Hello\"

答案 1 :(得分:2)

根据javadoc,replaceAll执行正则表达式匹配。这意味着第一个参数被视为正则表达式,第二个参数也有一些具有特殊含义的字符。请参阅javadoc

"字符在正则表达式中并不特殊,因此您无需对其执行任何操作。但对于替换表达式,反斜杠是特殊的。如果您有替换字符串并且您不希望任何字符被视为特殊字符,则最简单的方法是使用Matcher.quoteReplacement

s.replaceAll("\"",Matcher.quoteReplacement("\\\""))

另请注意,这根本不会修改sreplaceAll 返回字符串,您必须将其分配给某些内容(可能是s,也许是其他内容)。 (我不知道你是否犯了这个错误,但它在StackOverflow上非常常见。)