Ton code n'a ni queue ni tête:
Ton j1 utilise le nombre de ligne (5) alors qu'il devrais utilise le nombre de colonnes
Tu parcoure au final 3 boucles imbriqué (5x5x8 =200 itération) et dans chaque itération tu lit l'intégralité de ton fichier source.
Enfin, pour chaque ligne du fichier, tu compare toujours au même élément de tabC et tu tappe le résultat toujours dans la même cellule (i1,j1).
Tu lit donc 200 fois le fichier et, à supposer qu'il y a 5 lignes dans le fichier tu fais 1000 comparaison
tes comparaisons ne peuvent jamais réussir puisque ton StringTokenizer ne tokenize rien (tu n'a pas mis de séparateur).
Faire un programme, ce n'est pas mélanger du code n'importe comment et espérer ue ça va faire quelque chose. Il faut donner un enchainement logique aux choses.
Tu dois lire ton fichier ligne par ligne poue le tapper dans ta matrice => Ca doit être ta boucle extérieur et non ta boucle intérieur
pour chaque ligne du fichier
.... faire quelque chose
fin pour
Maintenant, tu veux faire quoi dans ta boucle? Séparer ta ligne en mots. Pour chaque mot de tabC, si il est présent dans la ligne du fichier, mettre la colonne correspondante à 1 sinon la metre à 0
pour chaque ligne du fichier
Mettre à jour le numéro de ligne
Splitter la ligne en mots
Pour chaque mot du dictionnaire
Si le mot était présent dans la ligne lue
matrice[i,j] = 1
Sinon
matrice[i,j] = 0
fin pour
fin pour
Reste plus qu'à définir 'était présent dans la ligne'. Pour ça, j'ai ma préférence sur l'utilisation de HashSet, qui fait déjà le travail de tri et de recherche.
pour chaque ligne du fichier
Mettre à jour le numéro de ligne (i)
Splitter la ligne en mots et mettre dans un Hashset (pour sa méthode contains)
Pour chaque mot du dictionnaire appelé tabC (index j)
Si le mot était présent dans la ligne lue (tonHashSet.contains(tabC[j])
matrice[i,j] = 1
Sinon
matrice[i,j] = 0
fin pour
fin pour
Voilà, avec ça t'as plus qu'à écrire le code qui va avec.
Partager