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中文網其他相關文章!