java - 将分割字符串分配给已解析的 int

标签 java arrays string int parseint

我收到此错误,但我不太清楚如何修复它。

error:
incompatible types
found : int
required: int[]

array[x] = Integer.parseInt(elements[0]);

这是我的方法的代码。所使用的文件是一个包含 1000 个数字的文本文件,每行 2 个数字,共 500 行,以逗号分隔。

示例:

1,2
16,92
109,7

该 block 的目的是读取文本文件的所有行,并将所有数字分配给二维整数数组。

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;
}

最佳答案

您似乎对多维数组的索引感到困惑。 array 是一个二维数组,这意味着它是一个数组的数组。 new int[500][2] 创建一个长度为 500 的数组,其中每个元素都是长度为 2 的 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[] 中的一个整数,然后您可以将其分配给它。

关于java - 将分割字符串分配给已解析的 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20585675/

相关文章:

javascript - 抓取数组的值(key :array(key:val)) dynamically

java - 如何从扫描的PDF中提取表格数据?

java - 可以在单个 JFrame 中的项目上使用多种颜色吗?

java - 在 Java 中创建、搜索和修改(key、value1、value2)的最佳方式

c - 请解释一下这个比较字符串的方法

javascript 数字、字符串、数学和正确的方法

c++ - 如何计算 char 数组中元素的数量?

java - KeyListener 不产生任何响应

java - 为什么 Google Precondition Library 中的 Checkers 接受对象而不是字符串

php - 将数组转换为键值对数组