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 :

Problème avec StringTokenizer


Sujet :

Collection et Stream Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 4
    Par défaut Problème avec StringTokenizer
    Salut tout le monde,


    Je vous explique le contexte de mon programme : je dois utiliser un fichier .txt pour en tirer les mots et leur appliquer une fonction ajouterMot (String).

    Au niveau de la lecture du fichier je n'ai pas de problème.
    J'ai ensuite utilisé la fonction StringTokenizer pour "découper les lignes lues".
    Le problème est que StringTokenizer n'est pas un vrai String et je ne peux pas utiliser ma fonction ajouterMot qui a pour argument un String...

    J'ai testé la fonction split mais celle ci rend un tableau de String...

    Voici un bout de mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Dictionnaire dico = new Dictionnaire();
    System.out.print( "donnez le nom du fichier : ");
    nomfichier = Clavier.lireString();
    BufferedReader entree = new BufferedReader (new FileReader (nomfichier));
    do {
        ligne = entree.readLine();
        if (ligne != null) {
            StringTokenizer tok = new StringTokenizer (ligne," "); 
            while (tok.hasMoreTokens()) {
                dico.ajouterMot(tok.nextToken(),dico.racine);
            }
        }
    }
    Merci d'avance de votre aide

    DjeXtoR

  2. #2
    Membre Expert
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Par défaut
    Bonjour, tu devrais utiliser la méthode split, et ensuite parcourir le tableau renvoyé par cette méthode pour en ajouter chaque élément à ton dictionnaire.

  3. #3
    Futur Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 4
    Par défaut
    Merci de ta réponse CheryBen.

    J'avais déjà essayé d'utiliser la méthode split, mais j'ai rencontré un problème. Split va mettre les mots "lus" dans un tableau, mais une fois cela fait, je n'arrivais pas à séparer les mots pour les récupérer et en refaire des strings.

    Je commence à m'arracher les cheveux sur ce projet

  4. #4
    Membre Expert
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Par défaut
    Il n'y a rien de compliqué avec la méthode split, voilà une possibilité :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    String[] tabMots;
    int i;
     
    ligne = entree.readLine();
    if (ligne != null) {
        tabMots = ligne.split(" ");
        for(i=0 ; i < tabMots.length ; i++) {
            dico.ajouterMot(tabMots[i],dico.racine);
        }
    }

  5. #5
    Futur Membre du Club
    Inscrit en
    Novembre 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 4
    Par défaut
    Salut,
    merci encore de ta réponse,

    C'est vrai que le code est nettement plus simple... merci !

    Je comprends le code mais mon programme ne marche pas pour le moment.
    Ma fonction ajouterMot("lemot",le noeud de l'arbre) fonctionne lorsqu'on rajoute les mots un par un (en tapant la ligne de code) mais pas lorsqu'elle prend les mots du .txt

    C'est forcement à cause de la fonction qui lit le dico, mais je ne comprends pas pourquoi.

  6. #6
    Membre Expert
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Par défaut
    Qu'est-ce que tu veux dire par "ça ne marche pas" ?
    Il y a des erreurs? rien n'est ajouté à ton dictionnaire?

    Ajoute des traces (System.out.println) ou fait du debug pour voir les valeurs de ligne et la longueur de tabMots.

Discussions similaires

  1. Problème avec StringTokenizer
    Par pontus21 dans le forum Langage
    Réponses: 5
    Dernier message: 20/07/2009, 11h06
  2. Petit problème avec StringTokenizer
    Par mygwel dans le forum Langage
    Réponses: 3
    Dernier message: 13/05/2006, 18h22
  3. Problème avec le type 'Corba::Any_out'
    Par Steven dans le forum CORBA
    Réponses: 2
    Dernier message: 14/07/2002, 18h48
  4. Problème avec la mémoire virtuelle
    Par Anonymous dans le forum CORBA
    Réponses: 13
    Dernier message: 16/04/2002, 16h10

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