[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:
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
Ajouter un parametre au constructeur
Salut,
j'ai travaillez déja vec StringTokenizer.
Voici la solution et je suis sure qu'elle juste :
Code:
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:
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 ;)