Recherche des mots corrects

greg3075 Messages postés 2 Date d'inscription jeudi 12 février 2009 Statut Membre Dernière intervention 6 mars 2009 - 5 mars 2009 à 18:34
greg3075 Messages postés 2 Date d'inscription jeudi 12 février 2009 Statut Membre Dernière intervention 6 mars 2009 - 6 mars 2009 à 07:23
Bonjour, je suis nouveau sur ce forum et j'espère que vous pourrez m'aider.

Le problème est le suivant : j'entre des lettres à la console et avec ces lettres je dois recomposer tout les mots possible en recherchant qu'ils sont valables dans un fichier texte servant de dictionnaire.

Mon idée est de regarder chaque mot du dictionnaire et vérifier si les lettres entrées se trouvent dans le mot, si pas on passe au suivant.
J'ai écrit cette classe mais le problème c'est que quand je test mon programme, il n'affiche que des espaces.
Est-ce que mon algo est bonne ou je suis vraiment loin de mon idée?
Merci d'avance.

Voici ma classe :

public class Aide
{
    private String lettres;
    private DicReader mots;
    private String s;

    public Aide(String lettres)
    {
    this.lettres = lettres;
    mots = new DicReader("fr_BE.txt");
        s = "";
    }
   
    public void detection()
    {
    int j = 0;
    int i = 0;
    while(mots.hasNext()) // hasNext() étant une méthode testant s'il y a encore ou non des mots dans le dictionnaire
        {
        String mot = mots.nextLine(); // retourne un mot du dictionnaire
       
        while(i < mot.length() && j < lettres.length())
            {
            if(mot.charAt(i) == lettres.charAt(j))
                {
                if(i == j)
                    {
                    i++;
                    j++;
                    }
                else
                    {
                    j = i;
                    i++;
                    }
               
                s = s + mot.charAt(i);
                }
            else
                {
                j++;
                }
            }
        }
              
    }

    public String affiche()
    {
        return s;
    }
}

1 réponse

greg3075 Messages postés 2 Date d'inscription jeudi 12 février 2009 Statut Membre Dernière intervention 6 mars 2009
6 mars 2009 à 07:23
je vois que j'ai quand même fait pas mal d'erreur, alors voila a quoi ressemble maintenant mon code mais ca n'affiche toujours rien..

public class Aide
{
    private String lettres;
    private DicReader mots;
    private String s;

    public Aide(String lettres)
    {
    this.lettres = lettres;
    mots = new DicReader("fr_BE.txt");
        s = "";
    }
   
    public void detection()
    {
    String temp = "";
    int j = 0;
    int i = 0;
    while(mots.hasNext())
        {
        String mot = mots.nextLine();
        j = 0;
        i = 0;
       
        while(i < mot.length() && j < lettres.length())
            {
            if(mot.charAt(i) == lettres.charAt(j))
                {
                      temp = temp + mot.charAt(i);
                if(i == j)
                    {
                    i++;
                    j++;
                    }
                else
                    {
                    j = i;
                    i++;
                    }
                }
            else
                {
                j++;
                }
            }

        s = temp + "\n";
        }
    }
    public String affiche()
    {
        return s;
    }
}
0
Rejoignez-nous