如何在2D数组中的任何索引附近搜索?

时间:2018-09-27 01:10:47

标签: java arrays

因此,我正在编写一个程序,该程序采用5x5的2D数组,并列出该数组任何给定索引周围的所有字符。例如,如果我输入list [1] [1],它将给出索引:[0] [0],[0] [1],[0] [2],[1] [0],[1 ] [2],[2] [0],[2] [1],[2] [2]。

我可以打印出索引周围的所有字母,但边缘[0] [0]之类的字母除外。我似乎不知道该如何克服。

 private static void checkSurrounding(char[][] list, int x, int y) {
    for(int dx = -1; dx <= 1; dx++) {
        for(int dy = -1; dy <= 1; dy++) {
            if(!(dx == 0 && dy == 0)) {
                System.out.print(list[x + dx][y + dy]);
            }
        }
    } 
}

1 个答案:

答案 0 :(得分:1)

您的代码几乎正确!您在此处排除了中间点:

div {margin-top: 1px}
div > div {margin-top: 2px}
div > div > div {margin-top: 3px}
div > div > div > div {margin-top: 4px}

您唯一想念的就是避免越界。只要确保您不超出范围,它就可以正常工作:

 private static void checkSurrounding(char[][] list, int x, int y) {
    for(int dx = -1; dx <= 1; dx++) {
        for(int dy = -1; dy <= 1; dy++) {
            if(!(dx == 0 && dy == 0)) {
                System.out.print(list[x + dx][y + dy]);
            }
        }
    } 
}