cs_amelA
Messages postés83Date d'inscriptionjeudi 17 novembre 2005StatutMembreDernière intervention23 juin 2007
-
9 déc. 2005 à 00:57
cs_amelA
Messages postés83Date d'inscriptionjeudi 17 novembre 2005StatutMembreDernière intervention23 juin 2007
-
9 déc. 2005 à 11:20
bonjour,
comment pourrai je comparer deux chaînes de caractères?
sachant que j'ai eu les deux chaînes de caractères de la manière suivante:
//le premier mot:
String[] result = zone.getText().split("[file://b%22)/ \\b")];
// le texte est récupéré à partir de jTextArea
String mot1 =(String) result[x];//en utilisant une boucle
//le deuxième mot:
ResultSet cur1=req.executeQuery("select * from insign");
//insign une table à 2 colonnes (int,String)
String mot2 = cur1.getString(2);//en utilisant une boucle
j'ai essayer le (==) et la méthode "equals" mais ça n'a pas marché(le résultat est éronné).
merci.
A voir également:
Comparer deux string java
Comparer deux chaine de caractere en java - Meilleures réponses
pitouik
Messages postés7Date d'inscriptionsamedi 16 août 2003StatutMembreDernière intervention 9 décembre 20051 9 déc. 2005 à 10:13
Attention à ne pas confondre l'opérateur = = et la
méthode équals(). L'opérateur == compare les références des objets. Par
contre la méthode equals() de l'objet String compare bien une chaîne de
caractères à une autre.
Si tes chaînes semblent identiques à l'affichage
mais que la méthode retourne false, c'est qu'il y a peut-être des
caractères d'espacement qui trainent en fin ou en début de chaîne. Tu
as plusieurs manières de vérifier :
En ajoutant un caractère supplémentaire en début et en fin de chaîne afin de mieux repérer les caractères en trop :
System.out.println("#" + str1 + "#");
System.out.println("#" + str2 + "#");
En affichant la longeur des chaines :
System.out.println(str1 + " " + str1.length());
System.out.println(str2 + " " + str2.length());
Ensuite si la présence de caractères d'espacement est bien le souci, tu utilises la méthode trim() :
str1 = str1.trim();
str2 = str2.trim();
Tu peux aussi comparer et faire le trim() en même temps (mais ce n'est pas très joli) :
str1.trim().equals(str2.trim());
Et si ça ne fonctionne pas, tu peux toujours essayer d'afficher le code
ASCII de chacun des caractères de tes chaînes pour voir où ça coince.
Mais normalement ça derait fonctionner...
jcodeunpeu
Messages postés365Date d'inscriptionmercredi 9 novembre 2005StatutMembreDernière intervention 2 décembre 20062 9 déc. 2005 à 01:12
bonsoir,
ne convient pas pour comparer 2 chaînes, mais equals oui, çà m'étonne que ça marche pas...
qu'entends tu par le résultat est erroné ?
si tu ne dois pas tenir compte des espaces, un trim() des deux chaînes avant comparaison est recommandé .... puis essayes aussi str1.compareTo(str2);
ps : =(String) result[x];// ici le cast est inutile puis
cs_amelA
Messages postés83Date d'inscriptionjeudi 17 novembre 2005StatutMembreDernière intervention23 juin 2007 9 déc. 2005 à 02:04
c'est à dire quand j'affiche mot1 et mot2 (pour vérifier) et bien c'est la même chaîne de caractère qui s'affiche or il considère que se sont deux chaînes différentes.
quant au trim() et bien je sais pas comment l'integrer dans mon programme ( je sais pas l'utiliser), ça serait sympa si tu me donnais un petit exemple sur l'utilisation du
trim().
au fait j'ai essayer la méthode compareTo mais ça n'a pas marché.
merci