Vérifier qu'un mot existe en java

A voir également:Vérifier qu'un mot existe en javaVérifier qu'un mot existe une fois dans une longue liste ✓ - Forum - Bureautique Verifier que mot existe dans une variable php ✓ - Forum - PHP Mot clé static java - Conseils pratiques - Programmation objet Vba vérifier si une feuille existe ✓ - Forum - Excel Vba verifier si une valeur existe dans une colonne ✓ - Forum - Excel

Bonjour,
Je suis en train de réaliser pour faire le mot motus, seulement je suis débutante en java et j'ai donc plusieurs problèmes ... Ici mon problème, c'est que j'ai codé une fonction existenceMOT() censée vérifier si le mot donné par l'utilisateur existe ou non, sachant que les mots existants sont stockés dans le tableau t, MAIS ma fonction envoie toujours false, et jamais true, même quand le mot existe ... et je ne trouve pas mon erreur. Merci donc d'avance de votre aide.

import java.io.*;   public class existenceMOT {    public static boolean existenceMOT(String a) {   String [] t = new String [22739] ;   int l = 0 ;   String ligne ;   try {     BufferedReader in = new BufferedReader(new FileReader("liste_francais(2).txt"));     ligne = in.readLine() ;    while((ligne=in.readLine())!=null) {          t[l] = ligne ;     l=l+1 ;    }    in.close();    }   catch(FileNotFoundException err){    System.out.println( "Erreur :le fichier n’existe pas!\n "+err);   }   catch (IOException err){    System.out.println(" Erreur :\n "+err);   }         // PROBLEEEEEEEEEEEEEEEEEEEEEEEME //   while (l<22739)  {    int z=0;    String b=t[l];    l=l+1;     if (b.length() == a.length()) {      for (int i=0 ; i<a.length() ; i++ ) {       if(b.charAt(i)==a.charAt(i)) {       z++;       }      }     if (z==a.length()){      return true ;     }                    }  }   return false ; } }

Forum

A voir également:Vérifier qu'un mot existe en javaVérifier qu'un mot existe une fois dans une longue liste ✓ - Forum - Bureautique Verifier que mot existe dans une variable php ✓ - Forum - PHP Mot clé static java - Conseils pratiques - Programmation objet Vba vérifier si une feuille existe ✓ - Forum - Excel Vba verifier si une valeur existe dans une colonne ✓ - Forum - Excel

Web: www.shapebootstrap.net

1 réponse

Marsh

NOVEMBER 9, 2013 AT 9:15 PM

Bonjour,

On peut (énormément) simplifier ton problème.

public static boolean existenceMot(String str) throws IOException {     return Files.readAllLines(new File("liste_francais(2).txt").toPath()).contains(str); }

Reply
réponses:
  • auteur

  • auteur

    Je ne comprends pas dans cet algorithme, ce qui équivaut à renvoyer false ou true (dsl je suis vraiment débutante ...)

  • auteur

    Sachant que cette fonction apparaît dans notre classe principale, qui est la suivante :


    public class Jeu {    public static void main (String[] args) {   boolean continuer=true; // Boucle qui fait tourner le jeu tant que le joueur ne l'arrete pas (non utilisé pour l'instant).    boolean selection=false; // Definit si un mot existe ou non.   int chance=6; // Nombre de chance totale autorisée, a redefinir plus tard avec une boite de dialogue si besoin   boolean victoire=false; // Variable instancié a faux, devient vrai si les mots a trouver et proposer sont identiques.       //sélection du mot mystere au tout début (hors boucle pour n'en prendre qu'un unique)    String mot=dictionnaire.mot(); // On affecte à la variable mot la valeur retournée par la fonction mot de la classe dictionnaire.    System.out.println(mot); // Affichage provisoire du mot mystere pour les tests (à supprimer plus tard).       //while ((chance!=0)||(victoire=false)){     // Boucle inutilisé actuellement, définit les essais restant.        //Boucle de saisie du mot par l'utilisateur    while (selection != true){ //     String MOT=Dialogue.Mot(); //Affectation de la chaîne de caractère retournée par la fonction mot de la classe dialogue à la variable MOT.     System.out.println(MOT); // Systeme d'affichage provisoire pour vérifier si la boite de dialogue joue bien son role.           selection=existenceMOT.existenceMOT(MOT); //Affectation de la nouvelle valeur de seletion par le biais du retour de la fonction existenceMOT de la classe existenceMOT.     System.out.println(selection);     if (selection==false) { //Boucle qui diminue le nombre d'essai restant si jamais le mot n'existe pas      chance--;     }    }       //}      } }

  • auteur

    quand je met votre proposition et que je compile l'ordi me renvoit :

  • auteur

    et également :

  • auteur

    Ce qui renvoie

    true
    ou
    false
    c'est la méthode contains.

    Tu pourrais commencer ta classe Jeu comme ceci :

    import java.io.File; import java.nio.file.Files; import java.util.List;  public class Jeu {     public static void main(String[] args) throws Exception {         List<String> mots = Files.readAllLines(new File("liste_francais(2).txt").toPath());

    Puis faire ta condition
    selection = mots.contains(MOT);

  • auteur

    D'accord je pense avoir compris mais quand je compile l'ordi me dit que le package
    import java.nio.file.Files; n'existe pas.

    N'y aurait-il pas moyen de régler le pb en utilisant seulement
    import java.io.*;

  • auteur

    L'ordi me dit que le package java.nio.Files n'existe pas (il ne doit pas être compris dans mon installation java)

    N'y aurait t-il pas alors un moyen de régler le pb en modifiant seulement mon algorithme de départ ?

  • auteur

    Avec quelle version de Java est-ce que tu codes ?
    java.nio.file.Files existe depuis Java 7, sachant que la dernière version c'est Java 11...
    Donc s'il faut coder avec une vieille version il faudrait savoir laquelle.

  • auteur

    je code avec java 8 sur mac

  • auteur

    Donc ce code devrait fonctionner :

    import java.io.File; import java.nio.file.Files; import java.util.List;  public class Jeu {     public static void main(String[] args) throws Exception {         List<String> mots = Files.readAllLines(new File("liste_francais(2).txt").toPath());         System.out.println(mots.contains("bonjour"));     } }

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed