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

Collection et Stream Java Discussion :

[Débutant(e)] StringTokenizer


Sujet :

Collection et Stream Java

Vue hybride

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 347
    Par défaut [Débutant(e)] StringTokenizer
    Bonjour,

    Je lis l'ensemble d'un fichier texte d'un coup.
    J'aimerais mettre dans un tableau l'ensemble des mots du texte.
    J'ai donc fais un tokenizer en prenant comme séparation l'espace.
    Malheureusement, quand il y a un retour à la ligne, ca marche plus.
    Car ce n'est pas un espace et pourtant il devrait etre traiter comme telle.
    Comment puis je faire !
    Merci davance

    Extratit de code que j'applique :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
         StringTokenizer st;
         st = new StringTokenizer(chaîne); // Applique le StringTokenizer à chaîne
         while(st.hasMoreTokens()){        // Retourne false lorsqu'on lit après le dernier mot
             nMots = st.countTokens();     // Indique le nombre de mots restant dans st
     
             s = st.nextToken();           // Lit dans une chaîne le prochain mot
         }
    Edit: thibaut

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2004
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2004
    Messages : 265
    Par défaut
    Salut,

    Tu peux faire un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    String[] tab = maChaine.split("\\s+");
    A condition d'utilliser java 1.4 ou suprerieur...

    L'expression régulière sera surement à améliorer mais je pense que ça peut faire l'affaire

  3. #3
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 64
    Par défaut Ajouter un parametre au constructeur
    Salut,
    j'ai travaillez déja vec StringTokenizer.
    Voici la solution et je suis sure qu'elle juste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     StringTokenizer st;
         st = new StringTokenizer(chaîne, " \b\r\n"); // Applique le StringTokenizer à chaîne
         while(st.hasMoreTokens()){        // Retourne false lorsqu'on lit après le dernier mot
             nMots = st.countTokens();     // Indique le nombre de mots restant dans st
     
             s = st.nextToken();           // Lit dans une chaîne le prochain mot
         }
    Dans le 2eme parametre c les séparateur, les 2 premier sont les espaces blanc et les 2 dernier c les retours a la ligne.
    Mais comme ça les séparateur ne sont pas prise dans le tableau, pour les prendre il faut ajouter un troisieme parametre dans le constructeur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     StringTokenizer st;
         st = new StringTokenizer(chaîne, " \b\r\n", true); // Applique le StringTokenizer à chaîne
    le reste est le meme.
    Si sa marche pas vous me le redite.
    Salam

  4. #4
    Membre Expert
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 414
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 414
    Par défaut
    +1 pour oussam

    J'ajouterai le caractère TAB comme séparateur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    st = new StringTokenizer(chaîne, " \b\t\r\n"); // Applique le StringTokenizer à chaîne

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    347
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 347
    Par défaut
    Ca marche très bien !
    Un grand merci à tous

  6. #6
    Membre émérite
    Profil pro
    Architecte technique
    Inscrit en
    Mars 2002
    Messages
    966
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Mars 2002
    Messages : 966
    Par défaut
    Tu mets résolu stp. Merci

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

Discussions similaires

  1. [StringTokenizer] Découpage de droite à gauche ?
    Par july dans le forum Collection et Stream
    Réponses: 12
    Dernier message: 03/06/2005, 12h02
  2. [StringTokenizer] Découper une chaine de caractere
    Par nehan dans le forum Collection et Stream
    Réponses: 14
    Dernier message: 10/05/2005, 23h41
  3. [StringTokenizer] Pb de découpage
    Par Pill_S dans le forum Langage
    Réponses: 17
    Dernier message: 10/03/2005, 16h09
  4. Réponses: 2
    Dernier message: 05/10/2004, 22h43
  5. [stringtokenizer] probleme avec champs vides
    Par gege2mars dans le forum Langage
    Réponses: 9
    Dernier message: 30/06/2004, 08h25

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