Bonjour

Je dois rendre un travail pour 16h, aujourd'hui. L'application à développer en Java est un correcteur orthographique très basique (en Anglais). Le dictionnaire est un fichier .dat qui contient plus de 100 000 mots.

Tous ces mots sont insérés dans une ArrayList, de ce côté là il n'y a pas de problème.

Néanmoins, lorsque je veux tester l'existance d'un mot dans cette liste, cela ne fonctionne pas. J'ai bien redéfini la méthode equals(Object o) de ma classe Word qui modélise un mot du dictionnaire.

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
 
String w = dico.dictionary.get(10).getWord();
boolean b = dico.dictionary.contains(new Word(w));
System.out.println(b); // RETOURNE TRUE
 
String a = "abac";
boolean c = dico.dictionary.contains(new Word(a));
System.out.println(c); // RETOURNE FALSE
 
if(a == w) {
     System.out.println("Oops !");
} else {
     char[] wC = w.toCharArray();
     char[] aC = a.toCharArray();
 
     for(int i = 0; i < wC.length; i++) {
          System.out.println((byte)wC[i] + " " + (byte)aC[i]);
     }
}
Voila ce qu'affiche la dernière portion de code :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
97 97
98 98
97 97
99 99
Ce qui prouve que les deux mots sont exactement les mêmes.

C'est là que je suis perdu...

Merci d'avance,

Nicolas.