0

我正在使用 Processing 的Table界面解析 CSV,但有些行缺少一些数据。我想将所有可用的数据提取到我的表中,但我不确定如何处理丢失的数据——当我用缺失值NullPointerException遍历表时,我一直在获取。dataTable.getInt

我没有静态类型语言的背景,所以我不知道如何有条件地分配这些数据,而不是在每个分配周围放置一个单独的try/ 。catch肯定有更好的方法吗?

4

3 回答 3

0

在调用 dataTable.getInt 方法之前检查 dataTable 是否不为空

if(dataTable != null) {
    int my_nt = dataTable.getInt

}
//else skip since it is empty
于 2013-03-02T23:23:35.733 回答
0

由于您使用的是 getInt--您应该执行regex search/replace ,<not numeric>, with ,<some int>,. 在您的情况下,它可能就像用 ,0 替换 ,,

此外,正如 Hassan 所建议的,请仔细检查 dataTable 是否为空。

于 2013-03-02T23:25:35.153 回答
0

好的,所以我想出了一个方法来做到这一点:

首先, call dataTable.makeNullEmpty(),它将所有空值转换为空字符串。

然后,您可以使用这样的模式:

String total_value = dataTable.getString(i, 4);
if(total_value.length() > 0) s.total_value = parseInt(total_value);

并且只有在需要解析 int 时才能获得分配。

于 2013-03-02T23:32:38.460 回答