2017-10-07 100 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