Java 字串替換難題
在嘗試更新字串中的值時,提供的程式碼使用String 的取代方法:
String html = "<html><head></head><body>**USERNAME** AND **PASSWORD**</body></html>"; html.replace("**USERNAME**", "User A"); html.replace("**PASSWORD**", "B");
然而,這種方法並沒有達到預期的效果。為什麼會這樣呢?
字串不可變性
理解這個問題的關鍵在於字串的不可變性。與 Java 中的其他一些物件不同,字串不能就地修改。任何看似改變 String 的操作,例如替換,實際上都會建立一個新的 String 物件。
在給定的程式碼中,replace 呼叫建立新的 String 對象,但引用 html 繼續指向原始 String 。這意味著原始 HTML 內容不會受到替換嘗試的影響。
解決方案:擁抱重新分配
要克服這一不變性障礙,您必須將引用 html 重新分配給透過替換創建的新字串。這是修正後的程式碼:
html = html.replace("**USERNAME**", "User A"); html = html.replace("**PASSWORD**", "B");
透過在每次替換呼叫後重新指派 html,您可以確保它指向包含所需替換的更新後的字串。此方法承認並解決 String 的不變性,以實現廣受歡迎的替換。
以上是為什麼 String 的 `replace` 方法不更新我的 HTML 內容?的詳細內容。更多資訊請關注PHP中文網其他相關文章!