Java:不兼容的类型:java.lang.String不能转换为int

时间:2016-03-11 03:24:16

标签: java

有人可以帮我修复我的代码吗?我正在尝试使用2d数组制作一个三角形

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

3 个答案:

答案 0 :(得分:1)

您正在为数组分配String值。所以这个

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

应该是

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

您需要指定int值(例如12或2 31 -1)。< / p>

答案 1 :(得分:1)

实际上,无论如何,这应该用EXTRA_CFLAGS := -ggdb -O3 EXTRA_CFLAGS += -Wall DEFINES := -DMY_DEFINE SRCS := src/ INCS := inc/ TARGET_TYPE := EXE TARGET := exe/foo.exe LIBS := -lpthread OBJ_DIR := objs SRC_EXTS := cpp c include common_Makefile 数组完成,如果必须完全使用2D数组。

除非你被特别告知要使它成为一个数组,否则有很多方法可以将这种形状打印到控制台而不是使用数组。如果你真的希望将它存储在一个数组中,那么char数组就是合适的类型。

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

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

答案 2 :(得分:0)

替换

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

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