replaceAll不适用于以下查询

时间:2013-07-29 12:23:00

标签: java

执行以下行后,b包含值"\%AMPAMP\$"。我希望它是"&"。请帮忙。

String b = a.replaceAll("\%AMPAMP\$", "&"); 

2 个答案:

答案 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\\$", "&");