我想替换 substringin 字符串。例如:
localStringBuilder is for example "[sender] is xxxx xxxx xxx".
当我跑步时
localStringBuilder.toString().replaceAll("[sender]", callerName);
无法正常工作。问题在于[]
字符。如何解决这个问题?
我想替换 substringin 字符串。例如:
localStringBuilder is for example "[sender] is xxxx xxxx xxx".
当我跑步时
localStringBuilder.toString().replaceAll("[sender]", callerName);
无法正常工作。问题在于[]
字符。如何解决这个问题?
只需使用replace
代替replaceAll
replaceAll
将 REGEX 作为输入,不是字符串,而是正则表达式。[]
是用于对表达式进行分组的正则表达式的重要部分。
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
replaceAll 返回一个带有替换的新字符串。它不会替换原始字符串中的字符。
String newString = localStringBuilder.toString().replaceAll("[sender]", callerName);
用这个
localStringBuilder.toString().replaceAll("\\[sender\\]", callerName);
这有效:
locaStringBuilder.toString().replaceAll("\\[sender\\]", callerName);