2016-03-11 107 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数组是正确的类型。

静态填充值虽然是一个可怕的浪费时间,并使杂乱的代码。如果您考虑如何仅通过使用循环逻辑来生成这样的形状,您将会看到,可以应用相同的算法来初始化数组。

最后,你的代码,即使是固定的,不会生成一个三角形,而是一个菱形。

相关问题