recherche de mots simple tableaux java 2d


Je suis un débutant et je me demandais si quelqu'un pouvait me dire ce que je fais mal ici avec cette recherche de mots ? im coincé sur la vérification de chaque ligne pour un mot spécifié dans l'argument formel, actuellement il ne fait aucune vérification de quelque sorte que ce soit sa jst une méthode booléenne de base qui renvoie true si un mot est trouvé dans une ligne du tableau.en supposant que le tableau de recherche de mots est rectangulaire

    public boolean checkRow( char[][] puzzle, String w)
{
    int counter = 0;
    boolean match = true;
    for ( int row = 0; row < puzzle.length; row++)
    {
        counter = 0;


        for ( int col = 0; col < puzzle[row].length; col++)
        {
            if ( counter <= w.length() )
            {
                char word = puzzle[row][col];


                if( w.charAt(counter) == word)
                {
                    match = true;
                    counter++;
                }
            }


            else if ((counter == w.length()) && (match == true))
            {
                return true;
            }


             else 
            {

                match = false;
                counter = 0;
            }



        }
    }


    return match;
}
Author: clfc, 2011-06-14

1 answers

Voici votre code corrigé

public boolean checkRow(char[][] puzzle, String w) {
    int counter = 0;
    boolean match = true;
    for (int row = 0; row < puzzle.length; row++) {
        counter = 0;
        match = false;

        for (int col = 0; col < puzzle[row].length; col++) {
            if (counter < w.length()) {
                char word = puzzle[row][col];

                if (w.charAt(counter) == word) {
                    match = true;
                    counter++;
                } else {
                    match = false;
                    counter = 0;
                }

                if ((counter == w.length()) && (match == true)) {
                    return true;
                } 
            }
        }
    }
    return false;
}

Mais ce n'est pas la meilleure façon de faire votre vérification , ici est beaucoup plus lisse et encore plus rapide (environ 5 fois, je le testerais) code

public boolean checkRow2(char[][] puzzle, String w) {
    String rowStr = null;
    for(int row = 0; row < puzzle.length; row++) {
        rowStr = new String(puzzle[row]);
        if(rowStr.contains(w)) return true;
    }
    return false;
}
 2
Author: Sorceror, 2011-06-14 17:35:14