Java String Replace メソッドが文字列を更新しないのはなぜですか?

Linda Hamilton
リリース: 2024-11-14 11:48:02
オリジナル
462 人が閲覧しました

Why Isn't My Java String Replace Method Updating the String?

Java String Replace Method Behaving Unexpectedly

In Java, the String replace method is a commonly used function for replacing occurrences of a substring with a new string. However, sometimes users encounter situations where the replace method appears to be malfunctioning.

Consider the following code snippet:

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

In this code, the goal is to replace the placeholders for USERNAME and PASSWORD in the HTML string with the corresponding values from the map provided. However, upon execution, the original HTML string html remains untouched, leading to困惑ion.

Understanding the Issue

To understand the issue, we need to remember that Strings in Java are immutable, meaning they cannot be modified in place. The replace method on strings returns a new String object containing the modified values. In our code, we are not capturing the result of the replace method and assigning it back to the original html variable. As a result, the changes are not being applied to the original string.

Solution

To resolve this issue, we need to capture the result of the replace method and assign it back to the html variable:

html = html.replace(delimiter + entry.getKey()+ delimiter, entry.getValue());
ログイン後にコピー

With this modification, the code will now correctly update the html string with the desired replacement values.

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート