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

avec Java Discussion :

éliminer les doublons d'une chaîne de caractères


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2008
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 128
    Par défaut éliminer les doublons d'une chaîne de caractères
    bonsoir!

    j'ai une chaîne de caractères sous forme d'un ensemble de mots séparés par des espaces.
    je veux obtenir une autre chaîne à partir de la première mais qui ne contient pas de doublons.
    est-ce possible?

    merci d'avance !

  2. #2
    Membre Expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Par défaut
    une façon simple consiste à utiliser split pour convertir la string en tableau de string, copier dans un nouveau tableau les éléments de l'ancien qui n'ont jamais été inséré, pour finir recréer un string a partir du nouveau tableau.

    http://download.oracle.com/javase/1....lang.String%29


    il y'a d'autres moyens en jouant avec substring, indexof, matches, replaceAll, mais ça risque d'être plus complexe...

  3. #3
    Membre confirmé
    Inscrit en
    Juillet 2008
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 128
    Par défaut
    merci pour la réponse!

    mais peux-tu me donner un exemple simple avec Split() , qui montre surtout le traitement des doublons

    et merci !

  4. #4
    Membre confirmé
    Inscrit en
    Juillet 2008
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 128
    Par défaut
    au fait, j'ai procédé par un StringTokenizer comme-suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    String texte = "bonjour vous nous bonjour nous nous salut";
     
    			StringTokenizer str = new StringTokenizer(texte);
    			String[] tab = new String[str.countTokens()];
    			int i = 0;
    			while (str.hasMoreTokens()) {
    				tab[i++] = str.nextToken();
    			}
     
    			List<String> list = Arrays.asList(tab);
    			Set<String> set = new HashSet<String>(list);
    			String[] nov_tab = new String[set.size()];
    			set.toArray(nov_tab);
    			String nouv_txt =(Arrays.toString(nov_tab));
    et c'est réglé

  5. #5
    Membre Expert Avatar de jabbounet
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juin 2009
    Messages
    1 909
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 1 909
    Par défaut
    Citation Envoyé par Nayra Voir le message
    au fait, j'ai procédé par un StringTokenizer comme-suit:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    String texte = "bonjour vous nous bonjour nous nous salut";
    StringTokenizer str = new StringTokenizer(texte);
    String[] tab = new String[str.countTokens()];
    int i = 0;
    while (str.hasMoreTokens()) {
        tab[i++] = str.nextToken();
    }
    et c'est réglé
    Pour cette partie de code je la ferais comme ça plutôt, résultat identique sans tokenizer et sans boucle.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    String texte = "bonjour vous nous bonjour nous nous salut";
    String[] tab = texte.split(" ");
    ou éventuellement test.split("\s+"); si tu souhaite virer les espaces/tabulations/... et saut de ligne au passage.
    http://download.oracle.com/javase/1....ttern.html#sum

  6. #6
    Membre confirmé
    Inscrit en
    Juillet 2008
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 128
    Par défaut
    bonjour

    j'ai utilisé StringTokenizer car ma chaine de caractères contient en réalité d'autres séparateurs que je dois éliminer et j'ai pas pu réglé la chose avec split().

    par contre, dans une autre partie de mon code, j'ai fait ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    String[] txt = nouv_txt.split("\r");
    			for(int j=0 ; j<txt.length ; j++){
     
    				System.out.println(txt[j]);
     
    			}
    avec: nouv_txt une chaine de caractères qui contient que des mots séparés par un retour chariot, c-à-d que chaque mot est dans une ligne à part.
    j'ai voulu mettre les mots de la chaine dans un tableau, chaque mots dans une case, mais l'affichage de txt[j] ne m'affiche que le dernier mot de la chaine.

    pouvez-vous m'expliquer

    Merci !

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

Discussions similaires

  1. Supprimer les doublons d'une chaîne de caractères
    Par shakapouet dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 06/10/2011, 13h21
  2. Effacer les espaces dans une chaîne de caractères
    Par JohnnyWalk dans le forum Débuter avec Java
    Réponses: 16
    Dernier message: 19/07/2007, 14h13
  3. Éliminer les doublons d'une BDD MySQL
    Par sansouna24 dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 21/05/2006, 11h26
  4. [TestStand] Compter les éléments d'une chaîne de caractères
    Par capblans dans le forum Autres langages
    Réponses: 2
    Dernier message: 29/04/2005, 09h29

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