Maison > Java > javaDidacticiel > Pourquoi ma méthode Java String `replace()` ne semble-t-elle pas fonctionner ?

Pourquoi ma méthode Java String `replace()` ne semble-t-elle pas fonctionner ?

Patricia Arquette
Libérer: 2024-11-19 21:59:03
original
779 Les gens l'ont consulté

Why Does My Java String `replace()` Method Not Seem to Work?

Échec de la méthode de remplacement de chaîne Java [Duplicate]

Certaines implémentations Java ont signalé que la méthode replace() ne parvenait pas à remplacer correctement des chaînes spécifiques dans un chaîne donnée. Cette anomalie se produit en raison de la nature immuable des objets String.

Analyse du code problématique :

Dans l'extrait de code fourni :

< pre>
Délimiteur de chaîne = "";
String html = "USERNAME AND MOT DE PASSE";
Carte mp = new HashMap();
mp.put("USERNAME", "User A");
mp.put("PASSWORD", "B");
for ( Entrée entrée : mp.entrySet()) {
html.replace(delimiter Entry.getKey() delimiter, Entry.getValue());
}

Explication du problème :

La méthode replace() dans Java ne mute pas l'objet String d'origine. Au lieu de cela, il renvoie une nouvelle chaîne avec les remplacements appliqués. C'est le point de discorde : la variable html d'origine continue de contenir la valeur String d'origine.

Résolution :

Pour rectifier cela, le code doit être modifié pour explicitement réaffectez la variable html avec le résultat de l'opération replace() :

<br>html = html.replace(delimiter Entry.getKey() delimiter, Entry.getValue());<br>

Conclusion :

Comprendre l'immuabilité des objets String est crucial lors de l’utilisation de méthodes telles que replace(). L'attribution de l'objet String renvoyé à la variable d'origine garantit que les remplacements prévus prennent effet.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal