Java 使用chars(作业)检查二维数组中的某些单词

Java 使用chars(作业)检查二维数组中的某些单词,java,Java,我目前正在编写一个程序,要求我接受与下面类似的输入。 6 6 d e v o l g r e d p h k qchzjc p o a f o v a m n l qtfoxb 前两个整数表示行和列,其余的表示要放置在方法中的实际字符。我已经成功地创建了一个在数组中创建和读取的方法。 该程序是一个单词搜索解谜程序。它需要几种方法,但我需要关注的是“检查”方法和左右检查。。。到目前为止,这是我为这个方法编写的代码 public static boolean checkUp(char [][]

我目前正在编写一个程序,要求我接受与下面类似的输入。 6 6 d e v o l g r e d p h k qchzjc p o a f o v a m n l qtfoxb 前两个整数表示行和列,其余的表示要放置在方法中的实际字符。我已经成功地创建了一个在数组中创建和读取的方法。 该程序是一个单词搜索解谜程序。它需要几种方法,但我需要关注的是“检查”方法和左右检查。。。到目前为止,这是我为这个方法编写的代码

public static boolean checkUp(char [][] puzzle, String word, int row, int col) {
        System.out.println("Row: " + row +  " Col: " + col + " Word: " + word.charAt(0) + " CurLet: " + puzzle[row][col] + " Word length: " + word.length());
        if (row==0) {
            return false;
        } else if (word.length()==1) {
            return true;
        } else if (word.charAt(0) == puzzle[row][col]){
            checkUp(puzzle,word.substring(1),row-1,col);            
        }
        return false;
    }
有些限制,我必须逐字符读取数组和数组中的所有内容,我无法将其转换为字符串。如果它们匹配,在这个特定的示例中,我只需将行计数向下移动1即可上移。
有没有人有更好的办法来解决这个问题?在这一点上我完全被难住了,事实上我迷路了。我的朋友帮我写了这篇文章,但我真的不知道他到底想做什么

首先,您必须检查单词是否比给定的行或列长。然后迭代单词并比较字符

public static boolean checkUp(char[][] puzzle, String word, int row, int col) {
    if (row + 1 - word.length() < 0) return false;

    for (int i = row; i > row - word.length(); i--) {
        if (puzzle[i][col] != word.charAt(i)) {
            return false;
        }
    }
    return true;
}

public static boolean checkRight(char[][] puzzle, String word, int row, int col) {
    if (col + word.length() > puzzle[row].length) return false;

    for (int i = col; i < col + word.length(); i++) {
        if (puzzle[row][i] != word.charAt(i)) {
            return false;
        }
    }
    return true;
}
publicstaticboolean检查(char[][]拼图、字符串字、int行、int列){
if(row+1-word.length()<0)返回false;
for(int i=row;i>row-word.length();i--){
if(拼图[i][col]!=word.charAt(i)){
返回false;
}
}
返回true;
}
公共静态布尔checkRight(字符[][]拼图、字符串字、整数行、整数列){
if(col+word.length()>puzzle[row].length)返回false;
for(int i=col;i
取决于在给定输入字符串的情况下如何设置2D数组。例如:输入字符串是否逐行格式化?一列一列?看起来像是检查,实际上是检查左边,你每次减少1的行,往左,往上,你应该做第1列离开主题,但你真的需要检查上下和左右吗?对于普通的纵横填字游戏,你可以根据语言从左到右或从左到右垂直向下和水平向上书写,但不能双向书写。对于解决方案,我会将选中的每一行或每一列转换为字符串,并使用
contains()
indexOf()
@joakim danielson,这是我的第一篇帖子。