J'appelle Java en utilisant un service Web qui me renvoie des valeurs. Ces valeurs sont des noms d'attribut que j'ai réussi à recevoir. Je mets les valeurs retournées dans la base de données. Par exemple, les valeurs que je Récupéré sont:Problème de comparaison de chaînes Java avec des espaces vides
port DSLAM
Interfejs na ISP
Alors, quand je regarde dans la base de données ces valeurs sont stockées dans DB DSLAM port
et Interfejs na ISP
. C'est ainsi que je les ai reçus et c'est ainsi qu'ils sont stockés en DB (donc seulement avec un espace vide entre les mots).
Je reçois ces valeurs d'un service Web, mais lorsque je tente de faire une comparaison supplémentaire dans la classe:
if (attribute.trim().equalsIgnoreCase("Interfejs na ISP")) {
System.out.println("attr2");
}
ou
if (attribute.trim().equalsIgnoreCase("DSLAM port")) {
System.out.println("attr3");
}
Je ne suis pas avoir l'impression système lignes à ma console, if
est toujours false
. Quel peut être le problème et comment puis-je le résoudre? C'est un comportement vraiment étrange pour moi. Les attributs sont stockés correctement et seulement quand j'essaie de le comparer j'ai un comportement étrange. La clause if
n'est jamais true
. Peut-il y avoir un problème avec le format de la langue?
De plus, si je tente avec un seul mot:
if (attribute.trim().equalsIgnoreCase("Telefon"))
{ System.out.println("attr5");
}
Ensuite, il écrit dans le système Out. donc avec le mot sinlge il semble qu'il n'a pas de problèmes
Essayez 'trim()' sur l'attribut juste pour être sûr. –
Une question stupide: vous avez essayé ceci avec un 'else' et, vous avez vu l'impression alternative, non? – dasblinkenlight
Il existe peut-être des espaces de fin et/ou de début dans la chaîne. essayez 'attribute.trim(). equalsIgnoreCase' – Jens