二维数组长度错误
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);
我在这部分代码中遇到了一些麻烦 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);