0

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

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

2 回答 2

6

字符串是不可变的。请参阅公共 String replaceAll(String regex,String replacement)

Returns:
    The resulting String

你应该做:

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

编辑

在你说你确实保存了它之后,你现在应该注意到它replaceAll需要一个正则表达式而不是一个字符串。您应该转义特殊字符(转义正则表达式由 完成\,但在 Java\中写为\\),或使用String#quote

a = a.replaceAll(Pattern.quote("\%AMPAMP\$"), "&");
于 2013-07-29T12:24:01.530 回答
3

你在这里真的不需要正则表达式。使用String#replace(String search, String replace)方法如下:

b = a.replace("%AMPAMP$", "&");

顺便说一句String#replaceAll,方法需要一个正则表达式,您需要使用双反斜杠来转义$

b = a.replaceAll("%AMPAMP\\$", "&");
于 2013-07-29T12:31:30.550 回答