2017-10-07 110 views
2

我在代码的这一部分有一些摆脱cols = input [0] .length();它对我说 1)不能调用长度的基本类型int 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); 
    } 
    // 
} 
+0

提示:Java不是JavaScript。双重标记没有意义。然后长度是数组上的字段 - 不是方法。所以放下() - 并且在提出其他问题之前,先花这些基础知识的研究。 – GhostCat

+0

我是新来的java和我正在尽我所能 – jay

+0

是的。但是,再次说明:这是超级基础,你需要在这里发布之前做一些真正的研究。提示:在你的学习曲线的这一点上,你可以梦想问什么,这里已经问过了。并回答。 – GhostCat

回答

1

首先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); 
+0

我做到了,但仍然有一个错误“无法调用数组类型的长度int []” – jay

+0

你得到了什么错误,你在哪里得到它? –

+0

这是错误无法调用数组类型int []上的长度,我在这行上得到它int rows = input.length,cols = input [0] .length(); – jay