我该怎么做?我进行了研究,但找不到明确的答案。我尝试使用
pass = pass.replaceAll("$", "\\$");
但它不起作用。
利用
pass = pass.replace("$", "\\$");
它还将替换所有出现的事件。请参阅JavaDoc。
如果您更喜欢硬方法并想使用正则表达式,则需要:
pass = pass.replaceAll("\\$", "\\\\\\$");
这可以简化为,Matcher.quoteReplacement()
但仅replaceAll()
在需要替换与正则表达式匹配的内容时使用,并replace()
在必须替换文字序列时使用。
问题是String.replaceAll
使用正则表达式,两者\
都有$
特殊含义。据我所知,您不希望这样-您只想逐字替换字符串。因此,您应该使用String.replace
:
pass = pass.replace("$", "\\$");
(我个人认为replaceAll
使用正则表达式是一个设计错误,但这是另一回事。)