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