二维数组长度错误

2d-array error with the length

我在这部分代码中遇到了一些麻烦 cols = input[0].length() ; 它对我说 1) 不能调用 int 原始类型的 length 2)长度无法解析或不是字段。 我正在为扫雷游戏编写代码,在这里我想用我拥有的文件中的索引填充网格。

public static void main(String[] args) {

    Scanner file = new Scanner ("in.txt");

    int line=0;
    int m = file.nextInt();
    int n = file.nextInt();
    int index = file.nextInt();

    int [][] input = new int[m][n];
    String.valueOf(input);

    for (int [] field : input) {
        printMineField(field);
    }
    file.close();
    line= line++;
}

private static void printMineField(int[] input) {


    int rows = input.length, cols = input[0].length ;
    int[][] grid = new int[rows][cols];


    for (int i = 0; i < rows; i++) {
        Arrays.fill(grid[i], 0);
    }
    //
}

首先length是数组中的字段,不是函数。所以你应该使用 cols = input[0].length; - 删除那些括号。

接下来,您将一维数组传递给您的方法。你应该传递一个二维数组。

替换

private static void printMineField(int[] input) 

与:

private static void printMineField(int[][] input) 

那你还需要更换

for (int [] field : input) {
    printMineField(field);
}

与:

printMineField(input);