我想替换字符串中的子字符串。 例如:
localStringBuilder is for example "[sender] is xxxx xxxx xxx".
当我跑
时localStringBuilder.toString().replaceAll("[sender]", callerName);
无法正常工作。问题在于[]
个字符。怎么解决这个问题?
答案 0 :(得分:3)
只需使用replace
代替replaceAll
replaceAll
将REGEX作为输入,而不是String,而是正则表达式。 []
是用于对表达式进行分组的正则表达式的重要部分。
localStringBuilder.toString().replace("[sender]", callerName);
将按预期工作,因为它将普通字符串作为两个参数。
is the same. Works when is no [] characters in string
- @mbrc 1分钟前
不正确,我已测试:
public static void main(String[] args) {
String s = "asd[something]123";
String replace = s.replace("[something]", "new1");
System.out.println(replace);
}
输出:asdnew1123
答案 1 :(得分:0)
replaceAll返回带有替换的新字符串。它不会替换原始字符串中的字符。
String newString = localStringBuilder.toString()。replaceAll(“[sender]”,callerName);
答案 2 :(得分:0)
使用此
localStringBuilder.toString().replaceAll("\\[sender\\]", callerName);
答案 3 :(得分:0)
这有效:
locaStringBuilder.toString().replaceAll("\\[sender\\]", callerName);