在Java中将包含“$”的字符串替换为“\ $”

时间:2013-08-14 13:25:27

标签: java string replace

我该怎么办?我做了一个研究,但我找不到一个明确的答案。我试着用

pass = pass.replaceAll("$", "\\$");

但它不起作用。

2 个答案:

答案 0 :(得分:4)

使用

pass = pass.replace("$", "\\$");

它也将替换所有事件。请参阅JavaDoc

如果您喜欢艰难的方式并且想要使用正则表达式,则需要:

pass = pass.replaceAll("\\$", "\\\\\\$");

这可以通过Matcher.quoteReplacement()进行简化,但仍需要在需要替换与正则表达式匹配的内容时使用replaceAll(),并在必须替换文字序列时使用replace()

答案 1 :(得分:0)

问题是String.replaceAll使用正则表达式,其中\$都有特殊含义。据我所知,你不想要它 - 你只想逐字替换字符串。因此,您应该使用String.replace

pass = pass.replace("$", "\\$");

(我个人认为replaceAll使用正则表达式这一事实是一个设计错误,但这是另一回事。)