java - 向数组添加边框

标签 java arrays for-loop

我有一个数组,打印时打印如下:

    W V E R T I C A L L 

    R O O A F F L S A B 

    A C R I L I A T O A 

    N D O D K O N W D C 

    D R K E S O O D D K 

    O E E P Z E G L I W 

    M S I I H O A E R A 

    A L R K R R I R E R 

    K O D I D E D R C D 

    H E L W S L E U T H

如何让它像这样打印:

    # # # # # # # # # # # #

    # W V E R T I C A L L #

    # R O O A F F L S A B #

    # A C R I L I A T O A #

    # N D O D K O N W D C #

    # D R K E S O O D D K #

    # O E E P Z E G L I W #

    # M S I I H O A E R A #

    # A L R K R R I R E R #

    # K O D I D E D R C D #

    # H E L W S L E U T H #

    # # # # # # # # # # # #

我尝试过增大尺寸以容纳额外的字符,但我总是遇到超出范围的异常。我基本上试图获取一个非字母字符来围绕我的数组设置边框,这样当我实现填字游戏解算器时,在周围字母中搜索字母时,它不会触及边界,而是命中非字母字符然后传递 false。

这是我构建数组的代码:

    for (int i=1; i<row; i++){
        String getChar = (new String(sc.next()));
        for(int j = 1;j<col; j++){
            puzzle[i][j] = getChar.charAt(j);
            }
        }

感谢任何帮助!

编辑:这会打印我的数组:

     for (int i=0; i<puzzle.length; i++){

           System.out.print(Arrays.toString(puzzle[i]));
           System.out.println("");
     }

EDIT2:这是我的检查方法:

    private static boolean checkNE(int row, int col, String word, char[][] puzzle) {
    //Checking diagonals direction
    for(int letter = 1; letter < word.length(); letter++) {
        if(puzzle[row - letter][col + letter] != word.charAt(letter)) {
            return false;
        }
    }
    return true;
}

最佳答案

不用创建边框,只需检查您要检查的位置是否在数组之外,如果是,那么您就知道您将找不到整个单词,因为我们必须走到外面数组的。

例如,您的数组是 n x n,如果您尝试访问位置 n 那么它将超出范围,或者如果您尝试访问小于 0 的位置也会出界。因此,只要确保您访问的时间在此范围内即可。

关于java - 向数组添加边框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19121535/

相关文章:

java - DataSnap Delphi XE3 和Android 4.0 没有返回选择功能?

java - 库中存储库的 NoSuchBeanDefinitionException

perl - 在 Perl 中循环字符

代码未正确显示输出

java - 并发更新同一个集契约(Contract)一个文档

Java-Try 和 Catch 语句

c - 指向整数的指针数组?或指向整数数组的指针?

javascript - Lodash - 搜索字符串是否包含以开头的单词

c - 指向字符串的指针

c - 如何比较具有常量值的结构成员?