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

avec Java Discussion :

Problème d'égalité de chaînes


Sujet :

avec Java

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 6
    Points : 8
    Points
    8
    Par défaut Problème d'égalité de chaînes
    [NDM]Cette question a été initialement posée dans la discussion [Le Compte est bon] Algorithme de recherche de solutions.

    Bonsoir ,
    Désolé de revenir un peu en arrière mais j'aurais besoin d'aide si possible !
    Alors j'aurais besoin de savoir comment je pourrais récupérer les résultat un par un dans le tableau et les comparer à un résultat qu'aura introduit un joueur dans un JtextArea de façon à ce qu'il puisse jouer au lieu d'avoir directement la liste des résultats qui s'affiche

    Donc pour afficher les résultat vous avez utilisé ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      if( Computing.start() ){
               System.out.println("Le compte est bon ( "+ Computing.getListeDesSolutions().size() +" solutions" +" ) \n ");
               for ( String resultat : Computing.getListeDesSolutions()){
                   System.out.println(resultat + "\n");
               }
           }
    Moi je voudrais comparer les valeurs d'un résultat une par une , et pour cela j'ai essayé ça :
    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
    21
    22
    23
    24
     int x=0 ; 
           if( Computing.start() ){
     
              String   reslt= jTextArea2.getText() ;
     
               for ( String resultat : Computing.getListeDesSolutions()){
     
     
                   if (resultat==reslt){
                   x=1 ;
                   t.stop();
                   }if (x==1){ jTextArea2.setText( reslt1+"\n"+"le compte est bon !! vous avez trouvez l'une des "
                         + ""+Computing.getListeDesSolutions().size() +" Solutions  à :"+jLabel2.getText());
                 }
     
     
           }if (x==0) {
     
                 jTextArea2.setText("Le résultat est faux  !");
     
     
     
     
           }
    lorsque j’exécute il renvoie systématiquement que le résultat est faux , je pense qu'il y a une erreur dans la manière de faire appel aux éléments de la listes
    merci d'avance pour votre réponse

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Et bienvenue sur Developpez.

    Premièrement, on teste l'égalité de chaînes de caractères par equals(), non par ==, donc if (resultat.equals(reslt)). Sinon, c'est quoi exactement cette ligne dans ton code : t.stop();.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 6
    Points : 8
    Points
    8
    Par défaut
    Merci c'est un plaisir !
    j'ai essayé avec .equals et ça ne marche toujours pas !!
    le t.stop signifie l'arrêt de mon chronomètre ! (pas important)

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Si tu ajoutes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println(resultat+" "+reslt);
    juste avant la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (resultat.equals(reslt)){
    ça affiche quoi ?
    Il faut que le texte saisi dans le champ soit exactement le même que dans le résultat : pas le droit aux espaces supplémentaires, pas le droit à une casse différente, etc.

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 6
    Points : 8
    Points
    8
    Par défaut
    Oui je copie exactement le même résultat que l'algorithme me donne et je prend soin de bien vérifier qu'il n y a rien an plus ni espace ni rien du tout !

    et pour ta ligne : System.out.println(resultat+""+reslt);

    il affiche chacune des solutions concaténé avec le résultat saisit par l'utilisateur !
    mais dans mon interface il affiche que le résultat est faux car il ne reconnais pas le if (resultat.equals(reslt)) {}

    je sais pas si je me suis bien fais comprendre !

  6. #6
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par islamvalala Voir le message
    il affiche chacune des solutions concaténé avec le résultat saisit par l'utilisateur !
    Tu peux me copier le résultat ici, que je constate par moi-même...
    (et c'est System.out.println(resultat+" "+reslt);, avec l'espace, sinon ça va pas être aisé à lire.

    D'après le code que tu montres, si tu obtiens le message "Le résultat est faux !" dans le champ, c'est que x vaut 0, donc qu'on ne vérifie jamais la condition du test if (resultat.equals(reslt)){. Au passage, tu pourrais utiliser un type boolean, vu que tu n'as que deux valeurs, 0 et 1.

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 6
    Points : 8
    Points
    8
    Par défaut
    Voila ce que ça donne : Le compte est bon ( 4 solutions )

    34 - 25 = 9
    38 x 9 = 342
    342 - 1 = 341
    341 + 20 = 361
    38 + 34 = 72
    25 - 20 = 5
    72 x 5 = 360
    360 + 1 = 361


    34 - 25 = 9
    38 x 9 = 342
    342 + 20 = 362
    362 - 1 = 361
    38 + 34 = 72
    25 - 20 = 5
    72 x 5 = 360
    360 + 1 = 361


    34 - 25 = 9
    38 x 9 = 342
    20 - 1 = 19
    342 + 19 = 361
    38 + 34 = 72
    25 - 20 = 5
    72 x 5 = 360
    360 + 1 = 361


    38 + 34 = 72
    25 - 20 = 5
    72 x 5 = 360
    360 + 1 = 361
    38 + 34 = 72
    25 - 20 = 5
    72 x 5 = 360
    360 + 1 = 361

  8. #8
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Bah, on voit tout de suite qu'il n'y a qu'un seul résultat pour chaque solution, à priori celui qui vient de la liste de solutions, donc ça veut dire que reslt est vide (ou ne contient que des espaces) !
    Si tu affiches reslt, tu vois bien ce que tu as entré dans ton champ ?

  9. #9
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    En revanche, je n'avais pas percuté, mais pourquoi vois-ton le titre "Le compte est bon (4 solutions)" ? Tu es sûr que c'est le résultat de la trace que je t'ai demandée et pas le truc qu'affiche le programme initial (totalement inutile donc) ?
    Tu peux modifier ma trace en System.out.println("-------- début ----------\nRésultat : \n" = resultat+"\n-------\nSaisie :\n"+reslt+"\n------- fin --------");

  10. #10
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 6
    Points : 8
    Points
    8
    Par défaut
    Non c'est juste une ligne qui informe du nombre de résultats trouvés !


    Voila ce que tu m'as demandé :



    -------- début ----------
    Résultat :
    98 - 87 = 11
    50 x 11 = 550
    550 - 15 = 535
    46 x 9 = 414
    535 - 414 = 121

    -------
    Saisie :
    15 x 9 = 135
    135 - 50 = 85
    87 - 85 = 2
    46 / 2 = 23
    98 + 23 = 121


    ------- fin --------
    -------- début ----------
    Résultat :
    98 - 87 = 11
    50 x 11 = 550
    46 x 9 = 414
    550 - 414 = 136
    136 - 15 = 121

    -------
    Saisie :
    15 x 9 = 135
    135 - 50 = 85
    87 - 85 = 2
    46 / 2 = 23
    98 + 23 = 121


    ------- fin --------
    -------- début ----------
    Résultat :
    98 - 87 = 11
    50 x 11 = 550
    46 x 9 = 414
    414 + 15 = 429
    550 - 429 = 121

    -------
    Saisie :
    15 x 9 = 135
    135 - 50 = 85
    87 - 85 = 2
    46 / 2 = 23
    98 + 23 = 121


    ------- fin --------
    -------- début ----------
    Résultat :
    98 - 87 = 11
    50 - 15 = 35
    46 - 35 = 11
    11 x 11 = 121

    -------
    Saisie :
    15 x 9 = 135
    135 - 50 = 85
    87 - 85 = 2
    46 / 2 = 23
    98 + 23 = 121


    ------- fin --------
    -------- début ----------
    Résultat :
    98 - 87 = 11
    50 - 46 = 4
    15 - 4 = 11
    11 x 11 = 121

    -------
    Saisie :
    15 x 9 = 135
    135 - 50 = 85
    87 - 85 = 2
    46 / 2 = 23
    98 + 23 = 121


    ------- fin --------
    -------- début ----------
    Résultat :
    98 - 87 = 11
    46 + 15 = 61
    61 - 50 = 11
    11 x 11 = 121

    -------
    Saisie :
    15 x 9 = 135
    135 - 50 = 85
    87 - 85 = 2
    46 / 2 = 23
    98 + 23 = 121


    ------- fin --------
    -------- début ----------
    Résultat :
    87 + 50 = 137
    98 + 46 = 144
    144 / 9 = 16
    137 - 16 = 121

    -------
    Saisie :
    15 x 9 = 135
    135 - 50 = 85
    87 - 85 = 2
    46 / 2 = 23
    98 + 23 = 121


    ------- fin --------
    -------- début ----------
    Résultat :
    87 + 50 = 137
    15 x 9 = 135
    137 - 135 = 2
    46 / 2 = 23
    98 + 23 = 121

    -------
    Saisie :
    15 x 9 = 135
    135 - 50 = 85
    87 - 85 = 2
    46 / 2 = 23
    98 + 23 = 121


    ------- fin --------
    -------- début ----------
    Résultat :
    98 - 50 = 48
    48 x 15 = 720
    720 / 9 = 80
    87 - 46 = 41
    80 + 41 = 121

    -------
    Saisie :
    15 x 9 = 135
    135 - 50 = 85
    87 - 85 = 2
    46 / 2 = 23
    98 + 23 = 121


    ------- fin --------
    -------- début ----------
    Résultat :
    87 x 46 = 4002
    4002 - 9 = 3993
    98 - 50 = 48
    48 - 15 = 33
    3993 / 33 = 121

    -------
    Saisie :
    15 x 9 = 135
    135 - 50 = 85
    87 - 85 = 2
    46 / 2 = 23
    98 + 23 = 121


    ------- fin --------
    -------- début ----------
    Résultat :
    87 x 46 = 4002
    4002 - 9 = 3993
    98 - 15 = 83
    83 - 50 = 33
    3993 / 33 = 121

    -------
    Saisie :
    15 x 9 = 135
    135 - 50 = 85
    87 - 85 = 2
    46 / 2 = 23
    98 + 23 = 121


    ------- fin --------
    -------- début ----------
    Résultat :
    87 x 46 = 4002
    4002 - 9 = 3993
    50 + 15 = 65
    98 - 65 = 33
    3993 / 33 = 121

    -------
    Saisie :
    15 x 9 = 135
    135 - 50 = 85
    87 - 85 = 2
    46 / 2 = 23
    98 + 23 = 121


    ------- fin --------
    -------- début ----------
    Résultat :
    98 - 50 = 48
    48 x 15 = 720
    720 / 9 = 80
    87 + 80 = 167
    167 - 46 = 121

    -------
    Saisie :
    15 x 9 = 135
    135 - 50 = 85
    87 - 85 = 2
    46 / 2 = 23
    98 + 23 = 121


    ------- fin --------
    -------- début ----------
    Résultat :
    98 - 50 = 48
    48 x 15 = 720
    720 / 9 = 80
    80 - 46 = 34
    87 + 34 = 121

    -------
    Saisie :
    15 x 9 = 135
    135 - 50 = 85
    87 - 85 = 2
    46 / 2 = 23
    98 + 23 = 121


    ------- fin --------
    -------- début ----------
    Résultat :
    98 + 46 = 144
    144 / 9 = 16
    87 - 16 = 71
    71 + 50 = 121

    -------
    Saisie :
    15 x 9 = 135
    135 - 50 = 85
    87 - 85 = 2
    46 / 2 = 23
    98 + 23 = 121


    ------- fin --------
    -------- début ----------
    Résultat :
    98 + 46 = 144
    144 / 9 = 16
    50 - 16 = 34
    87 + 34 = 121

    -------
    Saisie :
    15 x 9 = 135
    135 - 50 = 85
    87 - 85 = 2
    46 / 2 = 23
    98 + 23 = 121


    ------- fin --------
    -------- début ----------
    Résultat :
    50 + 15 = 65
    87 x 65 = 5655
    98 - 9 = 89
    5655 - 89 = 5566
    5566 / 46 = 121

    -------
    Saisie :
    15 x 9 = 135
    135 - 50 = 85
    87 - 85 = 2
    46 / 2 = 23
    98 + 23 = 121


    ------- fin --------
    -------- début ----------
    Résultat :
    50 + 15 = 65
    87 x 65 = 5655
    5655 - 98 = 5557
    5557 + 9 = 5566
    5566 / 46 = 121

    -------
    Saisie :
    15 x 9 = 135
    135 - 50 = 85
    87 - 85 = 2
    46 / 2 = 23
    98 + 23 = 121


    ------- fin --------
    -------- début ----------
    Résultat :
    50 + 15 = 65
    87 x 65 = 5655
    5655 + 9 = 5664
    5664 - 98 = 5566
    5566 / 46 = 121

    -------
    Saisie :
    15 x 9 = 135
    135 - 50 = 85
    87 - 85 = 2
    46 / 2 = 23
    98 + 23 = 121


    ------- fin --------
    -------- début ----------
    Résultat :
    15 x 9 = 135
    135 - 87 = 48
    50 - 48 = 2
    46 / 2 = 23
    98 + 23 = 121

    -------
    Saisie :
    15 x 9 = 135
    135 - 50 = 85
    87 - 85 = 2
    46 / 2 = 23
    98 + 23 = 121


    ------- fin --------
    -------- début ----------
    Résultat :
    15 x 9 = 135
    135 - 50 = 85
    87 - 85 = 2
    46 / 2 = 23
    98 + 23 = 121

    -------
    Saisie :
    15 x 9 = 135
    135 - 50 = 85
    87 - 85 = 2
    46 / 2 = 23
    98 + 23 = 121


    ------- fin --------

  11. #11
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Bon, ok, on voit qu'au moins la dernière devrait matcher. Le problème vient probablement d'une différence de whitespace, genre espace, ou retour-chariot.

    Au lieu de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     if (resultat.equals(reslt)){
    fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     if (resultat.trim().equals(reslt.trim())){
    trim() va supprimer tous les whitespaces au début et à la fin de la chaîne.

  12. #12
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 6
    Points : 8
    Points
    8
    Par défaut
    C'est juste impeccable merci beaucoup pour ta réponse tu me sauves la vie !

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

Discussions similaires

  1. Problème d'Union de chaïne
    Par Oberown dans le forum Requêtes
    Réponses: 5
    Dernier message: 13/01/2006, 14h20
  2. [Configuration] problème de taille de chaînes de caractères
    Par Wormus dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 8
    Dernier message: 21/10/2005, 14h55
  3. Problème de gestion de chaînes avec pointeur
    Par LorDjidane dans le forum C
    Réponses: 18
    Dernier message: 19/10/2005, 15h40
  4. Problème pour exécuter une chaîne de caractères
    Par Pongo dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 02/09/2005, 10h34
  5. Problème d'affichage de chaîne
    Par duplo dans le forum Assembleur
    Réponses: 5
    Dernier message: 06/11/2004, 15h01

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