执行以下行后,b
包含值"\%AMPAMP\$"
。我希望它是"&"
。请帮忙。
String b = a.replaceAll("\%AMPAMP\$", "&");
答案 0 :(得分:6)
字符串是immutable。请参阅public String replaceAll(String regex,String replacement):
Returns:
The resulting String
你应该这样做:
a = a.replaceAll("\%AMPAMP\$", "&");
修改强>:
在你说你确实保存之后,你现在应该注意到replaceAll
采用正则表达式而不是字符串。您应该转义special characters(转义正则表达式由\
完成,但在Java \
中写为\\
),或使用{ {3}}:
a = a.replaceAll(Pattern.quote("\%AMPAMP\$"), "&");
答案 1 :(得分:3)
这里你真的不需要正则表达式。使用String#replace(String search, String replace)
方法,如下所示:
b = a.replace("%AMPAMP$", "&");
btw String#replaceAll
方法需要一个正则表达式,你需要使用双反斜杠来转义$
:
b = a.replaceAll("%AMPAMP\\$", "&");