Fehlerbehebung beim Ersetzen von Java-Strings
Bei der Arbeit mit Java-Strings ist es wichtig, sich daran zu erinnern, dass Strings unveränderlich sind. Dies bedeutet, dass alle an einer Zeichenfolge vorgenommenen Änderungen ein neues Zeichenfolgenobjekt erstellen, anstatt das vorhandene zu ändern.
Beachten Sie den folgenden Code:
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()); }
Sie können davon ausgehen, dass dieser Code das „ ersetzt. Platzhalter „USERNAME“ und „PASSWORD“ im HTML-String mit Werten aus der Karte. Dies geschieht jedoch nicht, da die Methode replace() die vorhandene Zeichenfolge nicht ändert. Stattdessen wird eine neue Zeichenfolge mit den vorgenommenen Ersetzungen erstellt.
Um dieses Problem zu lösen, müssen Sie die neue Zeichenfolge der HTML-Variablen zuweisen:
html = html.replace(delimiter + entry.getKey()+ delimiter, entry.getValue());
Auf diese Weise können Sie Ich erstelle eine neue Zeichenfolge, die die Ersetzungen enthält, und weise sie der HTML-Referenz zu. Auf diese Weise werden die Änderungen im ursprünglichen HTML-String widergespiegelt.
Das obige ist der detaillierte Inhalt vonWarum funktioniert meine Java-String-Replace-Methode nicht?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!