我正在使用Processing的Table
接口解析CSV,但有些行缺少一些數據。我想把所有可用的數據都放到我的表中,但我不知道如何處理丟失的數據 - 當我循環使用dataTable.getInt
表中的缺失值時,我總是收到NullPointerException
。如何處理Processing表中的不完整數據?
我沒有靜態類型語言的背景,所以我不知道如何有條件地分配這些數據,而不是在每個任務的周圍放置單獨的try
/catch
。當然有更好的方法?
我正在使用Processing的Table
接口解析CSV,但有些行缺少一些數據。我想把所有可用的數據都放到我的表中,但我不知道如何處理丟失的數據 - 當我循環使用dataTable.getInt
表中的缺失值時,我總是收到NullPointerException
。如何處理Processing表中的不完整數據?
我沒有靜態類型語言的背景,所以我不知道如何有條件地分配這些數據,而不是在每個任務的周圍放置單獨的try
/catch
。當然有更好的方法?
好了,我想出了一個辦法做到這一點:
首先,調用dataTable.makeNullEmpty()
,果然所有的空值成空字符串。
然後,你可以使用這樣的模式:
String total_value = dataTable.getString(i, 4);
if(total_value.length() > 0) s.total_value = parseInt(total_value);
,你會得到任務只有一個int有沒有被解析。
之前調用dataTable.getInt方法檢查,如果數據表上由於your're使用getInt NOT NULL像
if(dataTable != null) {
int my_nt = dataTable.getInt
}
//else skip since it is empty
- 你應該執行regex search/replace ,<not numeric>, with ,<some int>,
。在你的情況下,它可能會像替換0一樣簡單,0,
另外,正如Hassan所建議的那樣,仔細檢查dataTable是否爲空。