IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Entrée/Sortie Java Discussion :

Problème de format, equals ne marche pas !


Sujet :

Entrée/Sortie Java

  1. #1
    Membre régulier Avatar de Nadd
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    160
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 160
    Points : 95
    Points
    95
    Par défaut Problème de format, equals ne marche pas !
    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.

  2. #2
    Membre chevronné
    Homme Profil pro
    Dév. Java & C#
    Inscrit en
    Octobre 2002
    Messages
    1 413
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Dév. Java & C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 413
    Points : 1 993
    Points
    1 993
    Par défaut
    Bonjour,


    On pourra t'aider difficilement avec ce bout de code...

    A quoi sert la condition ?

    Que veux-tu tester?

    Pour tester l'égalité des strings, on utilise la méthode equals
    Bien le bonjour chez vous
    Jowo

  3. #3
    Membre chevronné
    Avatar de CheryBen
    Inscrit en
    Mai 2005
    Messages
    1 599
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 599
    Points : 2 197
    Points
    2 197
    Par défaut
    Pourrait-on voir ta méthode Word.equals?
    Comme le suggère jowo, tu as peut-être oublié d'utiliser la méthode equals au lieu de =

  4. #4
    Membre régulier Avatar de Nadd
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2005
    Messages
    160
    Détails du profil
    Informations personnelles :
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2005
    Messages : 160
    Points : 95
    Points
    95
    Par défaut
    Héhé ^^'

    Vous avez pleinement raison

    J'avais complètement oublié l'utilisation de la méthode equals pour les objets String.

    Le programme fonctionne donc à merveille désormais

    Merci beaucoup

    En vous souhaitant une bonne journée,

    Nicolas.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 18/11/2010, 09h50
  2. Debutant la Methode equals ne marche pas ?
    Par junior68 dans le forum Débuter avec Java
    Réponses: 7
    Dernier message: 03/03/2009, 15h41
  3. pas de problème de compil mais ne marche pas!
    Par yvkoe dans le forum AWT/Swing
    Réponses: 8
    Dernier message: 18/09/2007, 14h20
  4. Problème de socket marche pas?
    Par doommick31 dans le forum Réseau
    Réponses: 13
    Dernier message: 13/05/2007, 13h59
  5. [ Problème ] .htaccess qui ne marche pas "partout"
    Par nnet_mathieu dans le forum Apache
    Réponses: 8
    Dernier message: 22/11/2005, 19h34

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo