3

我想替换 substringin 字符串。例如:

localStringBuilder is for example "[sender] is xxxx xxxx xxx".

当我跑步时

localStringBuilder.toString().replaceAll("[sender]", callerName);

无法正常工作。问题在于[]字符。如何解决这个问题?

4

4 回答 4

4

只需使用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

于 2012-08-29T19:06:19.433 回答
0

replaceAll 返回一个带有替换的新字符串。它不会替换原始字符串中的字符。

String newString = localStringBuilder.toString().replaceAll("[sender]", callerName);

于 2012-08-29T19:07:02.610 回答
0

用这个

   localStringBuilder.toString().replaceAll("\\[sender\\]", callerName);
于 2012-08-29T19:07:39.167 回答
0

这有效:

locaStringBuilder.toString().replaceAll("\\[sender\\]", callerName);
于 2012-08-29T19:08:14.750 回答