String.equals(String) ne fonctionne pas...
Résolu
moi411
Messages postés
45
Date d'inscription
Statut
Membre
Dernière intervention
-
moi411 Messages postés 45 Date d'inscription Statut Membre Dernière intervention -
moi411 Messages postés 45 Date d'inscription Statut Membre Dernière intervention -
Bonsoir,
Comme dit dans le titre, j'ai 2 chaines de caractères que je dois comparer.
J'utilise:
if(a.equals(b)){ ... }
Pour le test, a est identaique à b mais je ne rentre quand-même pas dans le "if"!
Merci d'avance et bonne soirée!
--
Comme dit dans le titre, j'ai 2 chaines de caractères que je dois comparer.
J'utilise:
if(a.equals(b)){ ... }
Pour le test, a est identaique à b mais je ne rentre quand-même pas dans le "if"!
Merci d'avance et bonne soirée!
--
3 réponses
-
Bonjour,
L'erreur est forcément ailleurs, il faudrait voir le code complet.
Tu devrais aussi affichera
etb
pour voir quelles sont les différences :
System.out.println(java.util.Arrays.toString(a.getBytes())); System.out.println(java.util.Arrays.toString(b.getBytes()));
La confiance n'exclut pas le contrôle -
Ré,
En fait j'ai un fichier avec des dates et des tarifs.
Je compare les dates et les tarifs après lecture du fichier (tout ça au format String).
Pour les dates, aucun problème mais pour les tarifs, ça déconne!
J'ai bien les mêmes chaînes (les affichages sont identiques et de même taille) et tout est bien dans un format String ; Je fais les éventuelles conversions par après !
La condition: if(a.equals(b) && c.equals(d))
Et merci de ta réponse!---
"les affichages sont identiques et de même taille"
L'affichage ne compte pas seul l'encodage compte, d'où l'intérêt de l'affichage de getBytes(), tu peux par exemple avoir des espaces différents (space et nbsp) indifférentiables "à la vue".
Alors affiches le tableau d'octets avec le code que j'ai fourni ci-dessus pour chaque couple de String que tu compares. Mais en aucun cas ce n'est la méthode equals qui est fausse...
-
-
Re,
Bon et bien j'ai trouvé (grace à getBytes()!) et effectivement je me suis rendu compte que j'ai mal coupé ma chaine de caractères (via substring) et un espace est resté!
Bref, je te remercie pour ton aide et je garde précieusement getBytes...
--