2016-03-11 139 views
-4

有人可以幫我修復我的代碼嗎?我嘗試使用二維數組Java:不兼容的類型:java.lang.String不能轉換爲int

public class Tri { 
public static void main(String [] args){ 

int rows; 
int columns; 
int i,j; 

int [][] arrayNumbers = new int[5][5]; 

arrayNumbers[0][0] = " "; 
arrayNumbers[1][0] = " "; 
arrayNumbers[2][0] = "*"; 
arrayNumbers[3][0] = " "; 
arrayNumbers[4][0] = " "; 

arrayNumbers[0][1] = " "; 
arrayNumbers[1][1] = "*"; 
arrayNumbers[2][1] = "*"; 
arrayNumbers[3][1] = "*"; 
arrayNumbers[4][1] = " "; 

arrayNumbers[0][2] = "*"; 
arrayNumbers[1][2] = "*"; 
arrayNumbers[2][2] = "*"; 
arrayNumbers[3][2] = "*"; 
arrayNumbers[4][2] = "*"; 

arrayNumbers[0][3] = " "; 
arrayNumbers[1][3] = "*"; 
arrayNumbers[2][3] = "*"; 
arrayNumbers[3][3] = "*"; 
arrayNumbers[4][3] = " "; 

arrayNumbers[0][4] = " "; 
arrayNumbers[1][4] = " "; 
arrayNumbers[2][4] = "*"; 
arrayNumbers[3][4] = " "; 
arrayNumbers[4][4] = " "; 

for(i=0;i<rows;i++){ 
for(j=0;j<columns;j++) { 
System.out.print(arrayNumbers[i][j] + " "); 
} 
System.out.println(" "); 
} 
} 
} 

一起組成一個三角形,但我不斷收到錯誤消息「的Java:不兼容的類型:java.lang.String中不能轉換成int

任何想法,我」要去錯了嗎?口口聲聲說,它需要一個int,但只找到一個String

回答

0

替換行

int [][] arrayNumbers = new int[5][5]; 

String [][] arrayNumbers = new String[5][5]; 
1

您正在爲您的陣列指定String值。因此,這

int [][] arrayNumbers = new int[5][5]; 

應該

String[][] arrayNumbers = new String[5][5]; 

您需要分配int值(如12,或2 -1)。

1

實際上,無論如何,這應該用char數組完成,如果它必須完全使用2D數組。

除非明確告知將它製作爲一個數組,否則將該形狀打印到控制檯的方法比使用數組要多得多。如果你真的想將它存儲在一個數組中,那麼char數組是正確的類型。

靜態填充值雖然是一個可怕的浪費時間,並使雜亂的代碼。如果您考慮如何僅通過使用循環邏輯來生成這樣的形狀,您將會看到,可以應用相同的算法來初始化數組。

最後,你的代碼,即使是固定的,不會生成一個三角形,而是一個菱形。

相關問題