IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

pb: string égaux sans l'être


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 2
    Par défaut pb: string égaux sans l'être
    Bonjour,

    J'ai un string s = "toto" et une liste L = arrayList<O>. Je compare
    s et le champs (String) O.string de tous les objets de la liste.
    Je sais qu'il existe un objet O dans L tel que O.string = "toto".

    Pourtant quand il compare s et O.string, il ne les trouve pas égaux.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    	public static int meth1(String s) {
    		int l = -1;
    		for (Iterator<O> i = meth2().iterator(); i.hasNext();) {
    			O o = i.next();
    			if ( o.getString()  == s ) {
    				l = o.getID();
    				break;
    			}
    		}
    		return l;
    	}
    Pour info la methode meth2() renvoie ma liste L construite d'une base de données mysql.
    Au débugage (sous eclipse) j'ai bien les 2 string s et o.getString() tous 2 égaux à "toto".

    Je comence à désespérer.

    Merci

  2. #2
    Membre éprouvé
    Avatar de Deadpool
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    1 312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 1 312
    Par défaut
    Bonjour.

    Il faut toujours utiliser la méthode equals pour comparer les chaînes de caractères en Java. L'opérateur == ne fait que comparer si 2 variables pointent vers la même adresse ce qui n'est pas forcément le cas avec 2 instances de chaînes ayant le même contenu.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
        public static int meth1(String s) {
            int l = -1;
            for (Iterator<O> i = meth2().iterator(); i.hasNext();) {
                O o = i.next();
                if ( o.getString().equals(s) ) { //on utilise equals
                    l = o.getID();
                    break;
                }
            }
            return l;
        }
    Edit: ce sujet est abordé dans la FAQ Java.

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 2
    Par défaut
    Merci Deadpool.

    Etant débutant, je fais des erreurs de ...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Sans vouloir être lourd!
    Par eridan26 dans le forum Bubuntu
    Réponses: 4
    Dernier message: 28/12/2008, 23h31
  2. Réponses: 7
    Dernier message: 28/02/2008, 16h56
  3. Réponses: 2
    Dernier message: 22/06/2007, 20h06
  4. Formule simple (sorte de moyenne sans en être une)
    Par Vincdeladrome dans le forum Algorithmes et structures de données
    Réponses: 13
    Dernier message: 18/12/2006, 15h36
  5. [String] replace sans la casse
    Par zaoueche dans le forum Langage
    Réponses: 6
    Dernier message: 27/04/2006, 15h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo