Heim >Java >javaLernprogramm >Warum aktualisiert meine Java-String-Replace-Methode den String nicht?

Warum aktualisiert meine Java-String-Replace-Methode den String nicht?

Linda Hamilton
Linda HamiltonOriginal
2024-11-14 11:48:02542Durchsuche

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

Java-String-Replace-Methode verhält sich unerwartet

In Java ist die String-Replace-Methode eine häufig verwendete Funktion zum Ersetzen von Vorkommen eines Teilstrings durch einen neue Saite. Manchmal stoßen Benutzer jedoch auf Situationen, in denen die Ersetzungsmethode scheinbar nicht richtig funktioniert.

Beachten Sie den folgenden Codeausschnitt:

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 diesem Code besteht das Ziel darin, die Platzhalter für USERNAME und zu ersetzen PASSWORD im HTML-String mit den entsprechenden Werten aus der bereitgestellten Karte. Bei der Ausführung bleibt jedoch der ursprüngliche HTML-String html unberührt, was zu 困惑ion führt.

Das Problem verstehen

Um das Problem zu verstehen, müssen wir uns daran erinnern, dass Strings in Java sind unveränderlich, das heißt, sie können nicht vor Ort geändert werden. Die Ersetzungsmethode für Strings gibt ein neues String-Objekt zurück, das die geänderten Werte enthält. In unserem Code erfassen wir nicht das Ergebnis der Ersetzungsmethode und weisen es der ursprünglichen HTML-Variablen zurück. Daher werden die Änderungen nicht auf die ursprüngliche Zeichenfolge angewendet.

Lösung

Um dieses Problem zu beheben, müssen wir das Ergebnis der Ersetzungsmethode erfassen und Weisen Sie es wieder der HTML-Variablen zu:

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

Mit dieser Änderung aktualisiert der Code nun korrekt die HTML-Zeichenfolge mit den gewünschten Ersatzwerten.

Das obige ist der detaillierte Inhalt vonWarum aktualisiert meine Java-String-Replace-Methode den String nicht?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn