将拆分字符串分配给已解析的int

时间:2013-12-14 16:41:05

标签: java arrays string int parseint

我收到此错误,我无法弄清楚如何修复它。

  

错误:      
不相容的类型   
发现: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;
}

1 个答案:

答案 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>