我想替換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
採取正則表達式作爲輸入,而不是一個字符串,但正則表達式。 []
是正則表達式的重要組成部分。
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