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 :

Comparaison entre deux chaines ?


Sujet :

Langage Java

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    63
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mars 2011
    Messages : 63
    Par défaut Comparaison entre deux chaines ?
    Bonsoir,

    J'aimerais savoir pourquoi s1 == s2 est non recommandé alors que s1.equals(s2); est oui.

    Thx

  2. #2
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Par défaut
    FAQ !!

  3. #3
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 586
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 586
    Par défaut
    Citation Envoyé par V4Vendetta Voir le message
    J'aimerais savoir pourquoi s1 == s2 est non recommandé alors que s1.equals(s2); est oui.
    Oh, le premier n'est pas recommandé, parce qu'il ne marche pas, alors que le second, si.

    La FAQ explique pourquoi le premier ne marche pas et le second si.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  4. #4
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 288
    Par défaut
    == compare les références alors equals compare les objets. Fais un tour sur la FAQ
    Merci de lire les règles du forum et surtout celle là Message clair et précis.
    Evitons les ctrl c ctrl v => Ne sortons pas les codes de leur contexte sinon ça ne marche pas.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    315
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Novembre 2009
    Messages : 315
    Par défaut
    Parce que == est un opérateur mathématique et pas un opérateur de chaine

  6. #6
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 586
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 586
    Par défaut
    Citation Envoyé par michelp3 Voir le message
    Parce que == est un opérateur mathématique et pas un opérateur de chaine
    Cela ne veut rien dire. En tout cas il n'est pas réservé qu'aux mathématiques, puisqu'il fonctionne comme attendu sur les types boolean et char, et qu'il a un sens sur les types objets : vérifier si deux objets sont en fait un seul et même objet.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  7. #7
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2008
    Messages
    1 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 1 190
    Par défaut
    Tout dépend de ce que l'on veut faire, vérifier que les deux références sont les même ou vérifier que les objets référencé sont les même au sens de la méthode equals (~ au sens objet)

  8. #8
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 586
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 586
    Par défaut
    Citation Envoyé par deathness Voir le message
    Tout dépend de ce que l'on veut faire, vérifier que les deux références sont les même ou vérifier que les objets référencé sont les même au sens de la méthode equals (~ au sens objet)
    Mais quand on débute on peut légitimement ne voir aucun intérêt à vérifier si deux références de String sont les mêmes... Ce qui semble intéressant, c'est de vérifier si elles contiennent la même chose.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  9. #9
    Membre averti
    Homme Profil pro
    Inscrit en
    Janvier 2012
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2012
    Messages : 16
    Par défaut
    Citation Envoyé par V4Vendetta Voir le message
    Bonsoir,

    J'aimerais savoir pourquoi s1 == s2 est non recommandé alors que s1.equals(s2); est oui.

    Thx
    Encore mieux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    StringUtils.equals(s1,s2)
    comme tu es à l'abri de la valeur nulle pour s1

  10. #10
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 586
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 586
    Par défaut
    Citation Envoyé par Bobak42 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    StringUtils.equals(s1,s2)
    comme tu es à l'abri de la valeur nulle pour s1
    Voui, mais cette classe StringUtils ne sort pas de ton chapeau. Il faut une bibliothèque qui la fournisse (ou en faire une soi-même.)
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Réponses: 6
    Dernier message: 18/04/2006, 14h11
  2. comparaison de deux chaines de caractères
    Par zazou41 dans le forum C++
    Réponses: 6
    Dernier message: 27/02/2006, 15h26
  3. Réponses: 7
    Dernier message: 03/02/2006, 14h50
  4. Comparaison entre deux champs de deux tables différentes
    Par liam81150 dans le forum Requêtes
    Réponses: 1
    Dernier message: 26/09/2005, 21h53
  5. Réponses: 5
    Dernier message: 06/10/2003, 18h49

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