首頁 >Java >java教程 >為什麼我的 Java 字串替換方法沒有更新字串?

為什麼我的 Java 字串替換方法沒有更新字串?

Linda Hamilton
Linda Hamilton原創
2024-11-14 11:48:02545瀏覽

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

Java 字串替換方法行為異常

在Java 中,字串替換方法是常用的函數,用於將出現的子字串替換為新字串。然而,有時使用者會遇到替換方法似乎故障的情況。

請考慮以下程式碼片段:

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());
}

在此程式碼中,目標是取代 USERNAME 和 的佔位符HTML 字串中的 PASSWORD 以及提供的地圖中的對應值。然而,執行後,原始 HTML 字串 html 保持不變,導致迷宮ion。

理解問題

要理解這個問題,我們需要記住 Strings在 Java 中是不可變的,這意味著它們不能就地修改。字串的 Replace 方法傳回一個包含修改值的新 String 物件。在我們的程式碼中,我們沒有捕獲replace方法的結果並將其分配回原始的html變數。因此,更改不會應用於原始字串。

解決方案

要解決此問題,我們需要捕獲替換方法的結果並將其分配回html 變數:

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

透過此修改,程式碼現在將使用所需的替換正確更新html 字串價值觀。

以上是為什麼我的 Java 字串替換方法沒有更新字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn