当字符串包含[]字符时替换字符串中的子字符串
我想替换substringin字符串。 例如:当字符串包含[]字符时替换字符串中的子字符串
localStringBuilder is for example "[sender] is xxxx xxxx xxx".
,当我运行
localStringBuilder.toString().replaceAll("[sender]", callerName);
无法正常工作。标有[]
个字符。如何解决这个问题?
只需使用replace
到位replaceAll
replaceAll
采取正则表达式作为输入,而不是一个字符串,但正则表达式。 []
是正则表达式的重要组成部分。
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);
如果[发件人]是不变的,我不能使用\\? – mbrc
http://stackoverflow.com/questions/60160/how-to-escape-text-for-regular-expression-in-java –
或者你可以使用http://docs.oracle.com/javase/6/ docs/api/java/lang/String.html#像另一个人提到的那样替换(char,char) –
这工作:
locaStringBuilder.toString().replaceAll("\\[sender\\]", callerName);
是一样的。作品当中没有[]字符串 – mbrc
这是不一样的,看我编辑 – dantuch
谢谢。我必须在 – mbrc