StringTokenizer

StringTokenizer - Java - Programmation

Marsh Posté le 25-11-2008 à 14:55:05    

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...
 
J'ai testé la fonction split mais celle ci rend un tableau de String...
Merci d'avance de votre aide
 
DjeXtoR

Reply

Marsh Posté le 25-11-2008 à 14:55:05   

Reply

Marsh Posté le 25-11-2008 à 15:05:49    

t'as pas une fonction nextElement sur ton Tokenizer ?


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
Reply

Marsh Posté le 25-11-2008 à 15:08:31    

j'ai lu une fois dans la doc, je crois, que StringTokenizer est deprecated et qu'il faut désormais utiliser la méthode split de la classe String.

Reply

Marsh Posté le 25-11-2008 à 15:10:12    

Si j'ai une fonction nextElement. voici le bout de code :
 
StringTokenizer tok = new StringTokenizer (ligne,"" );     while (tok.hasMoreTokens()) {
     dico.ajouterMot(nextToken(tok),dico.racine);
     }
Probleme c'est que Java me donne l'erreur suivante : The method nextToken(StringTokenizer) is undefined for the type Main
 
Concernant split, ça renvoit un tableau de string :(
 
Merci de vos réponses en tout cas :)


Message édité par DjeXtoR le 25-11-2008 à 17:05:46
Reply

Marsh Posté le 25-11-2008 à 15:13:33    

et tok.nextToken() ??


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
Reply

Marsh Posté le 25-11-2008 à 17:30:41    

Citation :

new StringTokenizer (ligne,"" );


et c'est quoi ton/tes délimiteurs ? parce que là tu n'en fournis aucun donc j'imagine que tu vas te retrouver avec un seul token par ligne...

 
Citation :

dico.ajouterMot(nextToken(tok),dico.racine);


...
http://java.sun.com/javase/6/docs/ [...] nizer.html


Message édité par Bidem le 25-11-2008 à 17:31:06
Reply

Marsh Posté le 25-11-2008 à 17:55:16    

Citation :

new StringTokenizer (ligne,"" );


et c'est quoi ton/tes délimiteurs ? parce que là tu n'en fournis aucun donc j'imagine que tu vas te retrouver avec un seul token par ligne...
 
 
Les délimiteurs sont uniquement les "espaces" donc je pense qu'il faut mettre :  
 
StringTokenizer tok = new StringTokenizer (ligne," " );
 

Citation :

dico.ajouterMot(nextToken(tok),dico.racine);


 
Concernant cela, c'était plus par désespoir :). Le gros et unique problème est de transformer les StringTokenizer en String normal que je pourrais utiliser dans ma fonction.  
 
 
Pour info, le projet consiste à créer un vérificateur d'orthographe sous la base des arbres de type "trie".
 

Reply

Marsh Posté le 25-11-2008 à 18:50:36    

DjeXtoR a écrit :

Citation :

new StringTokenizer (ligne,"" );


et c'est quoi ton/tes délimiteurs ? parce que là tu n'en fournis aucun donc j'imagine que tu vas te retrouver avec un seul token par ligne...
 
 
Les délimiteurs sont uniquement les "espaces" donc je pense qu'il faut mettre :  
 
StringTokenizer tok = new StringTokenizer (ligne," " );
 

Citation :

dico.ajouterMot(nextToken(tok),dico.racine);


 
Concernant cela, c'était plus par désespoir :). Le gros et unique problème est de transformer les StringTokenizer en String normal que je pourrais utiliser dans ma fonction.  
 
 
Pour info, le projet consiste à créer un vérificateur d'orthographe sous la base des arbres de type "trie".
 


 
faut faire trois choses alors : lire les réponses qu'on te donne, lire la doc, la comprendre.


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
Reply

Marsh Posté le 26-11-2008 à 00:33:42    

Ta boucle est bonne, il suffit juste de bien utiliser le tokenizer pour récupérer les mots d'une ligne

 
Citation :

StringTokenizer tok = new StringTokenizer (ligne," " );
while (tok.hasMoreTokens()) {
     dico.ajouterMot(tok.nextToken(), dico.racine);
}



Message édité par Bidem le 26-11-2008 à 00:35:46
Reply

Marsh Posté le 26-11-2008 à 00:42:38    

Sinon, concernant la remarque comme quoi StringTokenizer est deprecated (il y a une note à ce propos dans la doc), pour ma part je continue à utiliser StringTokenizer dans les cas simples.
 
C'est vrai que le split est puissant grâce aux expressions régulières mais la plupart du temps, ça revient à utiliser un bazooka pour tuer un moustique ;)

Reply

Marsh Posté le 26-11-2008 à 00:42:38   

Reply

Marsh Posté le 26-11-2008 à 08:26:06    

hum... j'ai comme l'impression que je suis passé connard prétentieux level 5... faut que je me surveille.
 
désolé DjeXtoR.


---------------
HFR - Mes sujets pour Chrome - Firefox - vérifie les nouveaux posts des topics suivis/favoris
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed