我收到此错误,我无法弄清楚如何修复它。
错误:
不相容的类型
发现:int
必需:int []array [x] = Integer.parseInt(elements [0]);
这是我的方法的代码。正在使用的文件是1000个数字的文本文件,每行2个,500行,用逗号分隔。
例:
1,2
16,92
109,7
这个块的目的是读取文本文件的所有行,并将所有数字分配给2d整数数组。
public static int[][] writeTypes(){
String position;
String[] elements = new String[2];
int x;
int y=1;
int array[][] = new int[500][2];
File TypesFile = new File("Types.txt");
try {
Scanner twoput = new Scanner(pkTypesFile);
for(x = 0; twoput.hasNext(); x++){
position = twoput.nextLine();
elements = position.split(",", 2);
array[x] = Integer.parseInt(elements[0]);
array[x][y] = Integer.parseInt(elements[1]);
System.out.println(array[x] + " " + array[x][y]);
}
} catch (Exception e) {
System.err.format("Types File does not exist.\n");
}
return array;
}
答案 0 :(得分:1)
您似乎对索引到多维数组感到困惑。 array
是一个二维数组,意味着它是一个数组数组。 new int[500][2]
创建一个长度为500的数组,其中每个元素的长度为int[]
,其中每个元素都是一个int。表达式array[x]
选择长度为2的500个int[]
数组中的一个。编译错误表示您无法为int[]
分配int。您需要提供另一个索引来选择由array[x]
表示的数组中的一个整数。
具体来说,你应该改变
array[x] = Integer.parseInt(elements[0]);
array[x][y] = Integer.parseInt(elements[1]);
System.out.println(array[x] + " " + array[x][y]);
到
array[x][0] = Integer.parseInt(elements[0]);
array[x][1] = Integer.parseInt(elements[1]);
System.out.println(array[x][0] + " " + array[x][1]);
第二个索引选择int[]
中的一个整数,然后您可以将其分配给。{/ p>