0

我有一个二维字符数组,其中填充了 L 和 S,还有 1 W 和 1 H。我想使用以下代码在数组中搜索 W,但我得到了错误的位置 (9,12) 而不是 (7,10)。

public static boolean checkForWater(char[][] array) {
    for (int i = 0; i < array.length; i++) {
        for (int j = 0; j < array[0].length; j++) {
            if (array[i][j] == 'W') {
                System.out.print(i + ", " + j);
                return true;

数组的内容:

数组的内容

4

1 回答 1

0

我们有一个包含 10 行和每行 10 个项目的数组。在您的示例中, char 'W' 是 10。第 7 行。列。索引将从 0 开始,因为我们的示例将打印 '9, 6'

public static void main(String[] args) {
    char[][] array = {
            {'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L'},
            {'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L'},
            {'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L'},
            {'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L'},
            {'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L'},
            {'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L'},
            {'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L'},
            {'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L'},
            {'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L', 'L'},
            {'L', 'L', 'L', 'L', 'L', 'L', 'W', 'L', 'L', 'L', 'L'},
    };
    checkForWater(array);
}

public static boolean checkForWater(char[][] array) {
    for (var row = 0; row < array.length; row++) {
        for (var column = 0; column < array[row].length; column++) {
            if (array[row][column] == 'W') {
                System.out.println(row + ", " + column); //9, 6
                return true;
            }
        }
    }
    return false;
}
于 2021-04-03T19:39:20.450 回答