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 :

Comparator et chaînes de caractères


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 106
    Par défaut Comparator et chaînes de caractères
    Bonjour,

    Je cherche tout simplement à trier une liste contenant des objets Utilisateurs. Je tiens à les trier par leur noms de famille (String) et si ce champ n'est pas rempli par leur workspace (String). Voici le bout de code qui réalise cette action :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    /* (non-Javadoc)
    * @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
    */
    public int compare(Object o1, Object o2) {
      Utilisateur user1 = (Utilisateur) o1;
      Utilisateur user2 = (Utilisateur) o2;
     
       if ((user1.getLastName() != null) && (!user1.getLastName().equals("")) && (user2.getLastName() != null) && (!user2.getLastName().equals(""))) {
          if (user1.getLastName().equals(user2.getLastName())) {
              return user1.getWorkspace().compareTo(user2.getWorkspace());
          }
          else {
    	return user1.getLastName().compareTo(user2.getLastName());
         }
    }
      else {
    	return user1.getWorkspace().compareTo(user2.getWorkspace());
    }
    	}
    Mon problème est que les majuscules et les minuscules ne sont pas mélangés lors du tri. C'est à dire que l'utilisateur qui un nom avec une majuscule est situé avant dans la liste même si alphabétiquement il est logiquement après.

    Merci

    PS: désolé pour l'indentation

  2. #2
    Membre confirmé
    Inscrit en
    Août 2007
    Messages
    23
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Août 2007
    Messages : 23
    Par défaut
    Si j'ai bien compris je pense que toLowerCase est fait pour toi.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    public int compare(Object o1, Object o2) {
      Utilisateur user1 = (Utilisateur) o1;
      Utilisateur user2 = (Utilisateur) o2;
     
       if ((user1.getLastName() != null) && (!user1.getLastName().equals("")) && (user2.getLastName() != null) && (!user2.getLastName().equals(""))) {
          if (user1.getLastName().equals(user2.getLastName())) {
              return user1.getWorkspace().compareTo(user2.getWorkspace());
          }
          else {
    	return user1.getLastName().toLowerCase().compareTo(user2.getLastName()toLowerCase());
         }
    }
      else {
    	return user1.getWorkspace().toLowerCase().compareTo(user2.getWorkspace().toLowerCase());
    }
    	}

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 106
    Par défaut
    En effet,

    Je pensais bien que la solution était toute simple.

    Merci .

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 17/07/2008, 20h31
  2. Comparer deux chaînes de caractère
    Par natie_49 dans le forum Langage
    Réponses: 2
    Dernier message: 28/03/2007, 11h53
  3. Comparer deux chaînes de caractères
    Par camoa dans le forum x86 16-bits
    Réponses: 2
    Dernier message: 10/12/2006, 14h30
  4. [MD5] Comparer 2 chaînes de caractères
    Par wolflinger dans le forum Langage
    Réponses: 16
    Dernier message: 26/04/2006, 14h30

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