1

我该怎么做?我进行了研究,但找不到明确的答案。我尝试使用

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

但它不起作用。

4

2 回答 2

4

利用

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

它还将替换所有出现的事件。请参阅JavaDoc

如果您更喜欢硬方法并想使用正则表达式,则需要:

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

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

于 2013-08-14T13:26:14.590 回答
0

问题是String.replaceAll使用正则表达式,两者\都有$特殊含义。据我所知,您不希望这样-您只想逐字替换字符串。因此,您应该使用String.replace

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

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

于 2013-08-14T13:29:32.887 回答