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
Freigeben: 2024-11-14 11:48:02
Original
524 Leute haben es durchsucht

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());
}
Nach dem Login kopieren

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());
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage