![](/img/trans.png)
[英]ConcurrentModificationException on Iterator.next()
[英]iterator.next skipping index
我有一個迭代器,值是這樣的:
index value
0 A
1 B
2 null
3 null
4 E
5 F
這是我的代碼:
Iterator<Cell> cellIterator = row.cellIterator();
while (cellIterator.hasNext()) {
cell = cellIterator.next();
System.out.println(cell.getStringCellValue());
}
輸出是
A
B
E
F
為什么當值為null時會跳過索引? 盡管值為空,如何遍歷所有索引? 我希望輸出如下所示:
A
B
null
null
E
F
不會顯示null
值,因為在Excel中, Cell
格2和3中不存在單元格。該行中總共只有4個單元格。
如果要覆蓋整行,即使沒有單元格,也必須從使用迭代器更改為傳統的for循環。
for (int i = 0; i < row.getLastCellNum(); i++)
{
cell = row.getCell(i);
if (cell == null)
{
System.out.println("null");
}
else
{
System.out.println(cell.getStringCellValue());
}
}
getLastCellNum
方法 “獲取此行PLUS ONE中包含的最后一個單元格的索引。”,因此, for
循環條件在編寫時是正確的。
我有使用MissingCellPolicy
CREATE_NULL_AS_BLANK
代碼,它將不存在的Cell
轉換為空白Cell
,結果為""
,因此我們必須使用空檢查來測試該單元格是否存在。
為缺少的單元格創建一個新的空白單元格。 空白單元格正常返回
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.