Heim  >  Artikel  >  Java  >  Warum aktualisiert die „replace“-Methode von String meinen HTML-Inhalt nicht?

Warum aktualisiert die „replace“-Methode von String meinen HTML-Inhalt nicht?

Linda Hamilton
Linda HamiltonOriginal
2024-11-12 18:12:01900Durchsuche

Why Doesn't String's `replace` Method Update My HTML Content?

Java String-Replace-Rätsel

Beim Versuch, Werte innerhalb eines Strings zu aktualisieren, verwendet der bereitgestellte Code die Ersetzungsmethode von String:

String html = "<html><head></head><body>**USERNAME** AND **PASSWORD**</body></html>";
html.replace("**USERNAME**", "User A");
html.replace("**PASSWORD**", "B");

Dieser Ansatz führt jedoch nicht zu den erwarteten Ergebnissen. Warum ist das so?

String Immutability Bites

Der Schlüssel zum Verständnis dieses Problems liegt in der Unveränderlichkeit von String. Im Gegensatz zu einigen anderen Objekten in Java können Strings nicht direkt geändert werden. Jede Operation, die einen String zu ändern scheint, wie z. B. Ersetzen, erstellt tatsächlich ein neues String-Objekt.

Im angegebenen Code erstellen die Ersetzungsaufrufe neue String-Objekte, aber der Referenz-HTML-Code verweist weiterhin auf den ursprünglichen String . Dies bedeutet, dass der ursprüngliche HTML-Inhalt von den Ersetzungsversuchen nicht betroffen ist.

Die Lösung: Neuzuweisung akzeptieren

Um diese Unveränderlichkeitshürde zu überwinden, müssen Sie den Referenz-HTML-Inhalt neu zuweisen neuer String, der durch Ersetzen erstellt wurde. Hier ist der korrigierte Code:

html = html.replace("**USERNAME**", "User A");
html = html.replace("**PASSWORD**", "B");

Durch die Neuzuweisung von HTML nach jedem Ersetzungsaufruf stellen Sie sicher, dass es auf den aktualisierten String verweist, der die gewünschten Ersetzungen enthält. Diese Methode erkennt die Unveränderlichkeit von String an und umgeht sie, um die gesuchten Ersetzungen zu erreichen.

Das obige ist der detaillierte Inhalt vonWarum aktualisiert die „replace“-Methode von String meinen HTML-Inhalt 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