我正在使用Processing的Table
接口解析CSV,但有些行缺少某些数据。我想将所有可用的数据提取到我的表中,但我不确定如何处理丢失的数据 - 当我使用NullPointerException
在缺少的值上循环表时,我不断获得dataTable.getInt
我没有静态类型语言的背景知识,所以我不知道如何有条件地分配这些数据,而不是在每个作业周围添加单独的try
/ catch
。当然有更好的方法吗?
答案 0 :(得分:0)
在调用dataTable.getInt方法之前,检查dataTable是否为null,如
if(dataTable != null) {
int my_nt = dataTable.getInt
}
//else skip since it is empty
答案 1 :(得分:0)
由于您使用的是getInt,因此您应该执行regex search/replace ,<not numeric>, with ,<some int>,
。在你的情况下,它可能就像替换,, with,0,
另外,正如Hassan建议的那样,仔细检查dataTable是否为空。
答案 2 :(得分:0)
好的,所以我找到了一种方法:
首先,调用dataTable.makeNullEmpty()
,将所有空值转换为空字符串。
然后,你可以使用这样的模式:
String total_value = dataTable.getString(i, 4);
if(total_value.length() > 0) s.total_value = parseInt(total_value);
只有在要解析int时才能获得赋值。