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 :

Comparez 2 String


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 318
    Par défaut Comparez 2 String
    Coucou,
    j'essai de comparer 2 string.

    voici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    String a = "abc";
    String b = "ABC";
    byte result;
     
    if(a==b) result = 1;
    else result=0;
    Bon ba en fait quang je test , JAVA voit bien la différence entre capital et minuscule.
    Comment forcer JAVA à ne regarder que les lettres et non leur "taille".
    J'essaierai bien avec une fonction pour mettre en minuscule b juste avant ma condition.

    Mici les amis:

  2. #2
    Membre éprouvé Avatar de Satch
    Homme Profil pro
    Hypnothérapeute - Magicien
    Inscrit en
    Mars 2004
    Messages
    498
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Suisse

    Informations professionnelles :
    Activité : Hypnothérapeute - Magicien

    Informations forums :
    Inscription : Mars 2004
    Messages : 498
    Par défaut
    il y a une méthode .toLowerCase() dans la classe String.

    Par contre, fais très attention à la façon de tester si les 2 sont pareil.
    Prend l'habitude d'utiliser .equals() si tu veux tester si une String est égale à une autre.


    == teste si les 2 références pointent sur le même objet.
    .equals(Object o) teste si les objets pointés par les 2 références que tu veux tester sont égaux.

    edit : Pour être plus clair, il faudrait plutôt que tu fasses ça :

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 135
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    String a = "abc";
    		String b = "ABC";
    		byte result;
     
    		if(a.equalsIgnoreCase(b)) result = 1;
    		else result=0; 
     
    		System.out.println(result);

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 318
    Par défaut
    Merci beaucoup

  5. #5
    Membre éprouvé Avatar de Satch
    Homme Profil pro
    Hypnothérapeute - Magicien
    Inscrit en
    Mars 2004
    Messages
    498
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Suisse

    Informations professionnelles :
    Activité : Hypnothérapeute - Magicien

    Informations forums :
    Inscription : Mars 2004
    Messages : 498
    Par défaut
    je trouve pas ça très utile de donner la solution sans expliquer pourquoi il ne faut pas utiliser ==... Mais bon.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 135
    Par défaut
    tu l'as très bien expliqué !

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 147
    Par défaut
    je trouve pas ça très utile de donner la solution sans expliquer pourquoi il ne faut pas utiliser ==... Mais bon.
    En même temps c'est pas comme si la question n'avait pas déjà été posé des milliards de fois pour la comparaison des String ...

    Fonction rechercher et FAQ ...

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 318
    Par défaut
    Comment dire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(A ,n'est pas égale à, B)

  9. #9
    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
    En Java la négation est exprimé par ! .

    Donc tu fais :

    Je te suggère de voir les bases de Java quand même.

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 198
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if(a.compareTo(b)!=0)

  11. #11
    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
    Citation Envoyé par delph1983
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if(a.compareTo(b)!=0)
    C'est une autre possibilité!

  12. #12
    Membre éprouvé Avatar de Oui-Oui MB
    Homme Profil pro
    Architecte technique
    Inscrit en
    Avril 2005
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Avril 2005
    Messages : 111
    Par défaut
    En réalité, en utilisant le "==", Java ne fait que comparer les références à ces objets. Mais, par optimisation, il n'instancie les String qu'un fois donc, la plupart du temps "abc" == "abc".

    Mais en utilisant la méthode equals, tu es sur de faire un vrai test sur la valeur des lettres.

    D'ailleurs, en général, pour comparer 2 objets, il faut toujours utiliser equals ou alors compareTo (si l'objet implémente Comparable).

  13. #13
    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
    Oui-Oui MB, ce que tu dis n'est valable que pour les constantes String mais absolument pas pour les variables String.

    Donc il faut obligatoirement utiliser equals (ou compareTo) pour faire des comparaisons de String.

  14. #14
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    318
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 318
    Par défaut
    je recup des variables vides quelques fois.

    Ma condition sur le fait que A doit être différent ne marche pas avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if(!A.equals(null))
    ou
    if(!A.equals(""))

  15. #15
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2006
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2006
    Messages : 198
    Par défaut
    Moi on m'avait conseillé de faire ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (!"".equals(A))

  16. #16
    Membre éprouvé
    Homme Profil pro
    Architecte technique
    Inscrit en
    Avril 2003
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Avril 2003
    Messages : 79
    Par défaut
    if(!A.equals(null))
    Ce n'est pas comme ca que l'on teste qu'une variable est null.

    Dans ton exemple, si A est effectivement null, l'execution de ton programme entrainera une NullPointerException

    Il faut utiliser à la place :


  17. #17
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 7
    Par défaut
    Y a une autre méthode plus efficace sinon :

  18. #18
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    135
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 135
    Par défaut
    sympa!

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

Discussions similaires

  1. éliminer un caractere d'un string
    Par no-vice dans le forum Langage
    Réponses: 5
    Dernier message: 09/08/2002, 14h55
  2. String -> long double (_strlold ?)
    Par haypo dans le forum C
    Réponses: 7
    Dernier message: 25/07/2002, 20h22
  3. URGENT: retour de string
    Par Pinggui dans le forum CORBA
    Réponses: 4
    Dernier message: 15/07/2002, 09h47
  4. Réponses: 2
    Dernier message: 05/06/2002, 12h29
  5. String Grid et choix d'une couleur pour une ligne
    Par Gigottine dans le forum C++Builder
    Réponses: 12
    Dernier message: 17/05/2002, 15h23

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