Operateur de comparaison et string.
Résolu
Azmatik
-
choubaka Messages postés 5534 Date d'inscription Statut Modérateur Dernière intervention -
choubaka Messages postés 5534 Date d'inscription Statut Modérateur Dernière intervention -
Bonjour,
Je débute en java et j'ai un petit problème, je n'arrive pas à comparer deux String, en gros ce que j'assaye de faire c'est par exmple :
réponse == "oui"
Où bien entendu réponse est une chaine de caractère.
Je débute en java et j'ai un petit problème, je n'arrive pas à comparer deux String, en gros ce que j'assaye de faire c'est par exmple :
réponse == "oui"
Où bien entendu réponse est une chaine de caractère.
4 réponses
-
Tu ne peux par faire de comparaison comme ça.
String s = "oui";
String t = "oui";
if (s.compareTo(t) > 0) // ceci teste la valeur int retournée si elle est égale à zéro les deux string n'ont pas la même valeur de chaîne.
Chouba, Modo CCM
Rhâââgnagna-
Je me permets de rectifier: compareTo renvoie 0 si les deux chaînes sont égales, un nombre négatif si s est strictement inférieur à t, ou un nombre positif si s est strictement supérieur à t.
Pour les String l'ordre correspond à un ordre lexicographique (celui du dictionnaire)
Exemple :System.out.println("a".compareTo("b")); // -1 System.out.println("e".compareTo("c")); // 2 System.out.println("d".compareTo("d")); // 0
De manière général pour savoir si deux objets ont la même valeur il faut utiliser la méthode Object.equals(Object) qui renvoie true si les valeurs sont identiques ou false sinon.
Et s'il s'agit d'objets Comparable la méthode x.equals(y) est en général équivalente à faire le test x.compareTo(y)==0, c'est ce que l'on appelle la consistance (mais ce n'est pas obligatoire).
En tout cas pour String, ça fonctionne :System.out.println(reponse.compareTo("oui")==0); System.out.println(reponse.equals("oui")); -
-
-
Salut,
Ou tout simplement:String reponse = "oui"; if(reponse.equals("oui")) System.out.println("C'est oui"); else System.out.println("C'est pas oui");
Ou bien autre exemple:String s1 = "oui"; String s2 = "non"; if(s1.equals(s2)) System.out.println("ÉGALITÉ"); else System.out.println("DIFF.");
Cordialement,
Dan -
Merci beaucoup, ça marche niquel.
Je me doutais bien qu'il devait y avoir une fonction réglant ce problème mais je n'avais pas réussi à la trouver, encore merci :) -
le javadoc est ton amie, utilise la