如何在Java中替换字符串中的 { 符号

3

你能帮我翻译一下如何在Java中替换字符串内的'{'吗?

例如:

String str = "abc{ad}";
str = str.replace("{","(");

但是这似乎是不可能的。

尝试使用 str.replace("{","("); 替换字符串。 - Android Killer
replace 函数只替换字符而不是字符串。 - Peter Lawrey
你使用的JDK版本是什么? - KV Prajapati
3个回答

5

String#replace(char,char)可以用于替换一个字符。你只需要将replace()调用更改为:

str = str.replace('{','(');
 //               ^ ^ ^ ^
 //             not the ' instead of "

然而,在Java中,String不可变的,因此您无法更改它1,您只能使用这些属性生成一个新的字符串对象。


(1) 换句话说,您不能轻松地更改它,虽然可以通过反射API来完成,但不建议这样做


1
我会删除关于反射的注释。在我看来,它只会增加噪音,并可能让读者认为使用反射修改字符串是明智的事情。 - JB Nizet
@JBNizet: 我理解您的观点,但声称“无法完成”是不正确的,没有这种澄清。我进行了修改以减少噪音,我也会欣赏任何编辑,以便更好地解释应该避免它。 - amit

2

{(是Java中的元字符,您应该使用反斜杠进行转义。而String.replace不使用正则表达式,应该使用[String.replaceAll][1]String.replaceFirst

str = str.replaceAll("\\{","\\(");

0

这将适用于

String strAll = "abc{ad}";
strAll = strAll.replaceAll("\\{","(");

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接