2014-02-22 51 views
0

我试图将我的char数组grid1传递给称为状态的方法。我收到错误字符不能转换为char [] []。我将如何传递grid1,以便在for循环中工作?将CharArray传递给方法

for (int row = 0; row < 30; row++){ 
     for (int col = 0; col < 30; col ++){ 
      if (status(grid1[row][col], row, col)){ 

      } 
     } 
    } 



    public boolean status(char [][] grid, int a, int b){ 

    char value = grid[a][b];  
     if (value == 'X'){ 
      //add X to another array 
      return true; 
     } else { 
     return false; 
     } 
     //add - to another array 
    } 

回答

1

的问题是,你的方法签名期待一个数组,你怎么称呼它使用来自数组的值。

呼叫等:

status(grid1, row, col) 

或修正方法签名

public boolean status(char grid){ 

    char value = grid; 
0

只需更换

if (status(grid1[row][col], row, col)){ 

if (status(grid1, row, col)){ 
0

grid1[row][col]char阵列的单个元件,因此是char类型。你需要通过整个阵列grid1

0

您已经在循环中解除引用您的grid1数组。所以,除非这个循环是出于任何原因成为你的状态方法的一部分,你的状态方法可能会简单得多:你不需要通过一个char[][],你可以通过一个char。显然你不需要列和行索引。你的方法应该是这样的:

public boolean status(char value){ 

     if (value == 'X'){ 
      //add X to another array 
      return true; 
     } else { 
     return false; 
     } 
     //add - to another array 
}