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

Java Discussion :

Collate ordre avec espace


Sujet :

Java

  1. #1
    Membre habitué
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2004
    Messages
    138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2004
    Messages : 138
    Points : 125
    Points
    125
    Par défaut Collate ordre avec espace
    Bonjour,
    je dois implémenter un sorte qui me permette de prendre en compte les accents mais également les espaces.
    La classe Collate me permet facilement de trié grâce au accent mais malheureusement je veux que le caractère espace ' ' soit avant le 'a'.

    Mais la syntaxe du Rules de la classe RuleBasesCollator est néanmoins compliqué.

    Pour que vous puissiez m'aider, voici en gros ce que j'ai comme implémentation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    private static final Locale LOCAL_FR = Locale.FRANCE;
    private static Collator collator = Collator.getInstance(LOCAL_FR);
    RuleBasedCollator defaultCollator = (RuleBasedCollator)collator;
    String newRules = ", ' ' < a"; // Ici je sais pas quoi mettre
    RuleBasedCollator newRulesCollator = new RuleBasedCollator(defaultCollator.getRules() + newRules);
    Collections.sort(words, newRulesCollator);
    Pour une liste données :
    - Albert Charles
    - Alberto
    - Albert

    L'ordres suivant :
    Albert
    Albert Charles
    Alberto

    Quelqu'un a-t'il une idée ?
    Merci
    A+

  2. #2
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par Shiftane Voir le message
    L'ordres suivant :
    Albert
    Albert Charles
    Alberto
    Perso j'obtiens déjà ceci rien qu'avec le collator :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    	String[] array = { "Albert Charles", "Alberto", "Albert" };
    	Collator collator = Collator.getInstance(Locale.FRANCE);	
    	Arrays.sort(array, collator);
    	System.out.println(Arrays.toString(array));
    a++

  3. #3
    Membre habitué
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2004
    Messages
    138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2004
    Messages : 138
    Points : 125
    Points
    125
    Par défaut
    Merci, effectivement seulement je voulais copier coller ceci :

    Liste :
    • Albert Charles
    • Alberta
    • Albert


    Ordre souhaité :
    Albert
    Albert Charles
    Alberta

  4. #4
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    OK en fait il ne prend pas en compte les espaces pour son tri...

    Perso je ferais plutôt un remplacement dans la règle afin d'ajouter l'espace avant le 'a' :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    	String[] array = { "Albert Charles", "Alberta", "Alberto", "Albert" };
     
    	Collator collator = Collator.getInstance(Locale.FRANCE);	
    	String rules = ((RuleBasedCollator)collator).getRules();
    	collator = new RuleBasedCollator( rules.replace("<a", "<' '<a") );
    	Arrays.sort(array, collator);
     
    	System.out.println(Arrays.toString(array));
    a++

  5. #5
    Membre habitué
    Homme Profil pro
    Développeur Java
    Inscrit en
    Juillet 2004
    Messages
    138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Juillet 2004
    Messages : 138
    Points : 125
    Points
    125
    Par défaut
    Excellent merci adiGuba !
    Au niveau performance c'est bien suffisant pour moi.

    Merci beaucoup

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

Discussions similaires

  1. Réponses: 16
    Dernier message: 07/04/2005, 11h36
  2. Affichage Données avec Espace ds Zone Texte
    Par dai.kaioh dans le forum ASP
    Réponses: 2
    Dernier message: 22/02/2005, 16h43
  3. pb insertion avec espaces
    Par devalender dans le forum SQL
    Réponses: 5
    Dernier message: 06/09/2004, 15h42
  4. Problème Locate avec espaces
    Par Clezio dans le forum Bases de données
    Réponses: 2
    Dernier message: 10/03/2004, 19h06
  5. shellexecute + chemin avec espace
    Par abignon dans le forum MFC
    Réponses: 2
    Dernier message: 26/01/2004, 22h15

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