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 :

Tri de chaîne de caractére


Sujet :

Langage Java

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Architecte Cloud
    Inscrit en
    Septembre 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Cloud
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 7
    Points : 7
    Points
    7
    Par défaut Tri de chaîne de caractére
    Salut,

    Je dois faire un tri sur une chaîne de caractère qui sont deux entiers séparés par un tiret ce qui donne par exemple :
    100-1, 101-1, 1000-1

    Actuellement si je fais des comparaisons et que j'affiche en ordre ascendant j'obtiens :
    100-1 > 1000-1 > 101-1
    alors que je veux obtenir
    100-1 > 101-1 > 1000-1

    Auriez-vous une idée à proposer ?

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 111
    Points : 128
    Points
    128
    Par défaut
    Slt,

    Le problème est le tiret.
    Il faut transformer tes chaines en enlevant le tiret avant de lancer ton trie
    il existe des fonctions qui suppriment un caractère donné dans une chaine

    ++

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Architecte Cloud
    Inscrit en
    Septembre 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Cloud
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    Je ne peux pas supprimer le tiret car il sagit d'un identifiant id-version et je peux avoir des données du genre 100-22.
    Si je l'enlève en reprenant mon exemple de départ mon tri ne sera pas celui que je veux au lieu de
    100-1 > 100-22 > 101-1 > 1000-1
    je vais avoir
    1001 > 1011 > 10001 > 10022

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 111
    Points : 128
    Points
    128
    Par défaut
    Dans ce cas il faut faire deux tries

    Tu tries toutes les chaines en prenant en compte que la première partie (avant le tiret)
    Tu stockes le résultat dans un tableau
    Tu tries ton tableau une deuxième fois en prenant en compte la deuxième partie(après le tiret)

    ++

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Architecte Cloud
    Inscrit en
    Septembre 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Cloud
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par saziley Voir le message
    Dans ce cas il faut faire deux tries

    Tu tries toutes les chaines en prenant en compte que la première partie (avant le tiret)
    Tu stockes le résultat dans un tableau
    Tu tries ton tableau une deuxième fois en prenant en compte la deuxième partie(après le tiret)

    ++
    J'y avais pensé mais j'aurais voulu savoir si avec les expressions régulières il n'y a pas moyen de faire plus rapide.

  6. #6
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 559
    Points : 21 619
    Points
    21 619
    Par défaut
    Bonsoir.

    Euh... Moi je dirais que ces soi-disant "String" devraient être des PaireDeInt qui contiennent chacune int entier1; et int entier2;. Pour classer PaireDeInt il suffit de défininir une class PaireDeIntComparator implements Comparator<PaireDeInt> et le problème devient trivial.

    Reste à voir comment transformer une String du format donné en PaireDeInt et une PaireDeInt en String.
    Pour le deuxième cas, c'est trivial, et on peut ranger ça dans toString().

    Pour le premier cas, c'est une question de parsing. Pas besoin d'aller chercher les regex. Un simple split() sur le tiret pour séparer les deux nombres, puis Integer.parseInt() sur les deux nombres, problème résolu.

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Architecte Cloud
    Inscrit en
    Septembre 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Cloud
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 7
    Points : 7
    Points
    7
    Par défaut
    Je vais essayer ta solution et je passe en résolu merci

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

Discussions similaires

  1. Tri de chaînes de caractères : Optimiser vitesse ?
    Par Gilbert Geyer dans le forum Langage
    Réponses: 47
    Dernier message: 29/10/2013, 09h39
  2. Tri de chaînes de caractères
    Par zizou.r23 dans le forum Débuter
    Réponses: 4
    Dernier message: 11/02/2013, 11h56
  3. Tri de chaîne de caractère
    Par sk8trasher dans le forum Débuter
    Réponses: 12
    Dernier message: 28/06/2012, 08h00
  4. Tri sur une chaîne de caractères contenant des nombres
    Par arnaud_verlaine dans le forum Langage SQL
    Réponses: 2
    Dernier message: 23/05/2006, 11h52
  5. tri par corrélation entre chaînes de caractères
    Par petitmic dans le forum Langage SQL
    Réponses: 7
    Dernier message: 09/09/2005, 15h15

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