ホームページ >Java >&#&チュートリアル >Java String Replace メソッドが機能しないのはなぜですか?

Java String Replace メソッドが機能しないのはなぜですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-26 04:16:12688ブラウズ

Why Isn't My Java String Replace Method Working?

Java 文字列置換の問題のトラブルシューティング

Java 文字列を扱うときは、文字列が不変であることを覚えておくことが重要です。これは、文字列に変更を加えると、既存の文字列オブジェクトを変更するのではなく、新しい文字列オブジェクトが作成されることを意味します。

次のコードを考えてみましょう。

String delimiter = "\*\*";
String html = "<html><head></head><body>**USERNAME** AND **PASSWORD**</body></html>";
Map<String, String> mp = new HashMap<String, String>();
mp.put("USERNAME", "User A");
mp.put("PASSWORD", "B");
for (Entry<String, String> entry : mp.entrySet()) {
  html.replace(delimiter + entry.getKey()+ delimiter, entry.getValue());
}

このコードは、" を置き換えることが期待できます。 HTML 文字列内の USERNAME" および "PASSWORD" プレースホルダーとマップの値。ただし、 replace() メソッドは既存の文字列を変更しないため、これは起こりません。代わりに、置換が行われた新しい文字列が作成されます。

この問題を解決するには、新しい文字列を HTML 変数に割り当てる必要があります。

html = html.replace(delimiter + entry.getKey()+ delimiter, entry.getValue());

これを行うことで、置換を含む新しい文字列を作成し、それを HTML 参照に割り当てます。こうすることで、変更は元の HTML 文字列に反映されます。

以上がJava String Replace メソッドが機能しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。