Bonjour
Je fais actuellement des classes qui me permettraient de lire un fichier texte de toutes les manières possibles (ligne par ligne, caractère par caractère, mot par mot etc...). Mais j'ai un léger problème avec la lecture mot par mot.
Voici le code que j'ai fait:
Le problème est que dès qu'il y a des retours à la ligne, le programme prend le mot avant le retour à la ligne et le mot après pour un seul mot, puisqu'ici, ce qui fait avancer d'un mot est un espace entre les mots.
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
19
20 public String readWordByWordUntil(int wordnumber) throws IOException { int numberOfWords = 0; String s = ""; Character c = 'a'; while (numberOfWords != wordnumber) { s = ""; c = 'a'; while (c != ' ') { c = (char) reader.read(); s = s + c; } numberOfWords++; //if the string is null: end of the file then exit if (s == null) break; } return s; }
J'ai essayé d'ajouter à ma deuxième boucle: || c != '\n', mais celà ne semble pas être la solution, on dirait que cela en fait une boucle infinie car ça fait tourner le processeur à fond sans s'arrêter.
Y a-t-il moyen en java de considérer le retour à la ligne dans un fichier comme un caractère?
Merci.
Partager