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 :

[débutant java] Spliter un texte en utilisant Tokenizer


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2006
    Messages : 11
    Par défaut [débutant java] Spliter un texte en utilisant Tokenizer
    Bonjour,
    Dans le cadre des mes études, je dois effectuer un petit projet d'un logiciel qui fait des manipulations sur des textes. Pour ce faire, je dois en fait créer un Array de string avec les mots de texte. Mon professeur m'avait dit d'utiliser la méthode StreamTokenizer, parce que c'est facile ... (bla bla )

    Voila ce que j'ai fait:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    adressedufichier = System.getProperty("user.dir") + "\\text.txt";
     
    		fr = new FileReader(adressedufichier);
    		br = new BufferedReader(fr);
    		st = new StreamTokenizer(br); <<----------------------------- Le problème
    Maintenant que le StreamTokenizer est crée, je sais pas ce que je dois faire afin de recuperer ce flux, de le spliter selon des espace ou endline et de mettre tout ca dans un array de string !!!

    Si quelqu'un a une idée, je suis preneur. Je vous remercie infiniment

  2. #2
    in
    in est déconnecté
    Membre Expert Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Par défaut
    Dans le cadre de tes études, as tu entendu parlé de la javadoc ?

    Je pense (enfin je suis sûr) que tu y trouveras des infos plus que suffisante.

    Après, si tu n'y arrive toujours pas, dis nous ce que tu ne comprends pas et on t'expliquera ...

    Bon courage

  3. #3
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2006
    Messages : 11
    Par défaut
    Salut,
    J'ai déjà commencé par le javadoc et l'ami google aussi, mais j'ai pas trouvé de réponse ou sinon j'ai trouvé des réponses que j'ai pas comprise vu leur complexité et mon simple niveau. C'est pour cette raison que mon utilise recours était vous

  4. #4
    in
    in est déconnecté
    Membre Expert Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Par défaut
    ben ...

    Citation Envoyé par javadoc
    The following is one example of the use of the tokenizer. The code:

    StringTokenizer st = new StringTokenizer("this is a test");
    while (st.hasMoreTokens()) {
    System.out.println(st.nextToken());
    }


    prints the following output:

    this
    is
    a
    test
    Je vois pas où est le pb ... tu as tout là :

    en gros ça te donne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    ArrayList<String> mots = new ArrayList<String>(); // comme on ne connait pas le nombre de mots, on utilise une arraylist
     
    StringTokenizer st = new StringTokenizer("this is a test");
             while (st.hasMoreTokens()) { // pour chaque mot
                // ajoute à l'arraylist
             }
     
    // et hop tu transformes ton arrayList en String[] grâce à la méthode toArray() que je te laisse le soin de découvrir
    évidemment il y a plusieurs solutions possibles. Mais bon ça devrait fonctionner.

    Ca t'aide j'espère. tu me diras combien j'ai eu ?

  5. #5
    Membre habitué
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2006
    Messages
    11
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2006
    Messages : 11
    Par défaut
    Merci beaucoup "in" pour ta solution

    Le probleme c'est que moi j'ai utilisé un StreamTokenizer, car je dois lire un fichier texte (regarde le code du premier post), donc je sais pas maintenant comment récuperer ce streaming !!

    Je veux créer une classe StreamingToList, et c'est ca en fait le probleme.

    PS: j'ai dejà trouvé cette solution sur un autre site, mais ca correspondais pas a mon probleme ^^ Merci quand meme

  6. #6
    Membre confirmé Avatar de Frac10
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 81
    Par défaut
    Ben pour utiliser StreamTokenizer c'est à peu près comme un StringTokenizer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    File adressedufichier = new File(System.getProperty("user.dir") + "\\text.txt");
    FileReader fr = new FileReader(adressedufichier);
    StreamTokenizer st = new StreamTokenizer(fr);
    //Prendre en compte les fins de lignes
    st.eolIsSignificant(true);
    String s = "";
     
    while(st.ttype != StreamTokenizer.TT_EOF) {
    	st.nextToken();
    	if (st.ttype != StreamTokenizer.TT_EOL && st.ttype != StreamTokenizer.TT_EOF) {
    		s += st.sval;
    	} else {
    		System.out.println(s);
    		//Ici tu peux découper la ligne "s" comme tu veux avec un Stringtokenizer...
    		s = "";
    	}
    }
    fr.close();
    (désolé si le code est pourri... )

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

Discussions similaires

  1. [Débutant]RichEdit => Rendre le texte non sélectionnable
    Par Runlevel dans le forum C++Builder
    Réponses: 4
    Dernier message: 02/12/2004, 23h47
  2. Réponses: 1
    Dernier message: 24/11/2004, 16h54
  3. [Débutant] java.lang.object
    Par bonnefr dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 27/05/2004, 14h54
  4. [débutante][java]connection internet PPC\PC de bureau
    Par Emma20 dans le forum Développement
    Réponses: 2
    Dernier message: 19/05/2004, 14h01

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