我正在从 csv 文件加载一个 String 并尝试用它创建一个 int 数组。问题是我一直遇到NumberFormatException当程序""在 String 数组中找到 a 时抛出的 a 。我不需要那些空字符串,我只需要整数。有没有办法避免用空字符串替换字符? aLine = aLine.replaceAll(" ", "").replaceFirst(",", ""); aLine = aLine.replace(name, "").replaceAll("\"", ""); final String[] strScores = aLine.split(","); final int[] scores = Arrays.stream(strScores) .mapToInt(Integer::parseInt).toArray();
2 回答
紫衣仙女
TA贡献1839条经验 获得超15个赞
你可以filter
流而不是空的,而不是null
在你之前parse
。喜欢,
final int[] scores = Arrays.stream(strScores) .filter(x -> x != null && !x.isEmpty()) .mapToInt(Integer::parseInt) .toArray();
繁华开满天机
TA贡献1816条经验 获得超4个赞
您应该使用数组列表,因为您可以轻松地添加和删除
array_list<String> list = new ArrayList<String>(); // create array list
for (int i =0; i < array_string.length;i++){
if (!string_array[i].equals("")){ // filter out empty
array_list.add(string_array[i]);
}
}
String new_string_array_without_empty = array_list.toArray(new String[0]); // convert to string array again
添加回答
举报
0/150
提交
取消