String の「replace」メソッドが HTML コンテンツを更新しないのはなぜですか?

Linda Hamilton
リリース: 2024-11-12 18:12:01
オリジナル
907 人が閲覧しました

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

Java String Replace Conundrum

String 内の値を更新しようとして、提供されたコードは String の replace メソッドを使用します。

String html = "<html><head></head><body>**USERNAME** AND **PASSWORD**</body></html>";
html.replace("**USERNAME**", "User A");
html.replace("**PASSWORD**", "B");
ログイン後にコピー

しかし、このアプローチでは期待した結果が得られません。なぜそうなるのでしょうか?

文字列の不変性の影響

この問題を理解する鍵は、文字列の不変性にあります。 Java の他のオブジェクトとは異なり、文字列をその場で変更することはできません。 replace など、String を変更するように見える操作は、実際には新しい String オブジェクトを作成します。

指定されたコードでは、replace 呼び出しにより新しい String オブジェクトが作成されますが、参照 HTML は元の String を指し続けます。 。これは、元の HTML コンテンツが置換試行の影響を受けないことを意味します。

解決策: 再割り当ての採用

この不変性のハードルを克服するには、参照 HTML を置換によって作成された新しい文字列。修正されたコードは次のとおりです。

html = html.replace("**USERNAME**", "User A");
html = html.replace("**PASSWORD**", "B");
ログイン後にコピー

各置換呼び出しの後に html を再割り当てすることで、目的の置換を含む更新された String を参照するようになります。このメソッドは、String の不変性を認識し、それを回避して、求められている置換を実現します。

以上がString の「replace」メソッドが HTML コンテンツを更新しないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート