substringinstringを置き換えたい。例えば:
localStringBuilder is for example "[sender] is xxxx xxxx xxx".
そして私が走るとき
localStringBuilder.toString().replaceAll("[sender]", callerName);
正しく機能していません。問題は[]
文字付きです。これを解決する方法は?
substringinstringを置き換えたい。例えば:
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
–@mbrc1分前
真実ではありません、私はそれをテストしました:
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);