从字符串ArrayList转换为整数数组(Java)

时间:2018-04-29 15:47:17

标签: java

我有一个名为lines的ArrayList。这包含一个由逗号分隔的0和1的文本文件。我的问题是尝试将这个arraylist转换为整数数组。我尝试了以下,但仍在努力。我错过了什么?

   car_Audi car_BMW car_Mazda
0      0       0       0

    int[][] result = new int [lines.size()][];
    for (int i = 0; i<result.length; i++) {
        result.add(Integer.valueOf(lines.getString(i)));
    }

2 个答案:

答案 0 :(得分:0)

如果您真的只想将每一行解析为一个数字:

int[] result = new int [lines.size()];
for(int i = 0; i<result.length; i++) {
    result[i] = Integer.parseInt(lines.get(i)); 
}

如果你想用逗号分割每一行并有一个2D数组:

int[][] result = new int [lines.size()][];
for(int i = 0; i<result.length; i++) {
    String[] nums = lines.get(i).split(",");
    result[i] = new int[nums.length];
    for (int j=0; j<nums.length; j++){
      result[i][j] = Integer.parseInt(nums[j]);
    }
}
  • 我必须添加一个命令来用逗号分隔行。
  • 必须创建每个较低维度的&#39;阵列。

    result [i] = new int [nums.length];

如果没有此语句,result中的每个槽都指向null,而不是实际的int数组。

答案 1 :(得分:0)

如果您只想要新数组中的0和1,那么您需要输入if语句以确保数组中不包含逗号。

这是代码:

enter code here
    int[] result = new int [lines.size()];
    for(int i = 0; i<result.length; i++) {
        if(!lines.get(i).equals(","))
            result[i] = Integer.parseInt(lines.get(i)); 

但是如果你想在整数数组中包含逗号,那么它们将被转换为ASCII,它将逗号表示为44的整数。 这是包含逗号的代码:

enter code here

    int[] result = new int [lines.size()];
    for(int i = 0; i<result.length; i++) {
        if(!lines.get(i).equals(","))
            result[i] = Integer.parseInt(lines.get(i)); 
        else
            result[i] = lines.get(i).charAt(0);