Menu

Vérifier qu'un mot existe en java

-
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 ;
}
}
Afficher la suite 

Votre réponse

1 réponse

Messages postés
15918
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
20 janvier 2019
3630
0
Merci
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);
}
cla10000
Messages postés
7
Date d'inscription
vendredi 14 décembre 2018
Dernière intervention
12 janvier 2019
-
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.*;
cla10000
Messages postés
7
Date d'inscription
vendredi 14 décembre 2018
Dernière intervention
12 janvier 2019
-
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 ?
KX
Messages postés
15918
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
20 janvier 2019
3630 > cla10000
Messages postés
7
Date d'inscription
vendredi 14 décembre 2018
Dernière intervention
12 janvier 2019
-
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.
cla10000
Messages postés
7
Date d'inscription
vendredi 14 décembre 2018
Dernière intervention
12 janvier 2019
-
je code avec java 8 sur mac
KX
Messages postés
15918
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
20 janvier 2019
3630 > cla10000
Messages postés
7
Date d'inscription
vendredi 14 décembre 2018
Dernière intervention
12 janvier 2019
-
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"));
    }
}
Commenter la réponse de KX