我有一个名为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)));
}
答案 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);