文字列のペアを含む 2 次元配列があります。1 つの文字列が見つかった場合は、それをそのペアに置き換える必要があります。
コード:
for (int i = 0; i < pairs.length; i++) {
if (name.contains(pairs[i][0])) {
name.replaceAll(pairs[i][0], abbr[i][1]);
}
}
弦交換ではありません。エラーは何ですか?
の結果を割り当てることを怠っているreplaceAll
ため、変更が失われます。
おそらく、変更された文字列を次のように保持したいでしょうname
:
for (int i = 0; i < pairs.length; i++) {
if (name.contains(pairs[i][0])) {
name = name.replaceAll(pairs[i][0], abbr[i][1]);
}
}
JavaString
オブジェクトは不変であるため、呼び出しても変更さname.replaceAll
れず、変更されたnewname
が返されることに注意してください。 String
文字列は不変です。
name.replaceAll(pairs[i][0], abbr[i][1]);
新しい文字列を作成します (「名前」文字列は変更しません)
試す
name = name.replaceAll(pairs[i][0], abbr[i][1]);
文字列の変更されたバージョンが作成されていますが、その戻り値は失われています。
name = name.replaceAll(pairs[i][0], abbr[i][1]);
動作するはずです。