3 回答
TA贡献1851条经验 获得超4个赞
让我们给出一个非答案:当你重新发明轮子时,这样的事情是可以预料到的。
含义:CSV解析比您想象的要难。通常,您自己的手写解析器适用于您可以想到的输入数据。第二次你从不同的来源向它抛出有效的CSV数据,稍微复杂一些,你的解析器就会崩溃。
所以:这个异常告诉你这个字符串不能被解析为数字,正如其他答案所解释的那样,这是由于其他元素的错误“解析”。" 1"
因此,我的建议是:如果你想有一个真正的CSV解析器,请使用现有的库,如openCSV或apache共享资源CSV。
TA贡献1831条经验 获得超9个赞
看来你的是不正确的。空值和长度的参数和条件不正确。我想将该方法更改为:convertCSVtoArrayListsplit
public static ArrayList<String> convertCSVtoArrayList(String pathCSV) {
ArrayList<String> result = new ArrayList<>();
if (pathCSV != null) {
String[] splitData = pathCSV.split("\\s+");
for (int i = 0; i < splitData.length; i++) {
if (splitData[i].length() != 0) {
result.add(splitData[i].trim());
}
}
}
return result;
}
TA贡献1872条经验 获得超3个赞
它似乎试图将“不减少”行转换为整数,但失败了。代码是否进入您的 if(行.包含(“简化”))块?
也许添加这个只是作为测试
if(line.contains("Reduction") || line.trim().isEmpty())
也许您的输入文件末尾有换行符?
添加回答
举报