gpt4 book ai didi

java - 如何在不使用 break 或 continue 语句的情况下遍历所有非空行?

转载 作者:行者123 更新时间:2023-11-29 10:10:44 25 4
gpt4 key购买 nike

我想从 Excel 文件中获取数据。我正在使用 while 循环、迭代器和 hasNext() 方法遍历所有行。我的问题:有时在包含数据的行之后有空行(可能是单元格类型字符串和值“”或 null),我不想对其进行迭代。所以我添加了方法isCellEmpty():

public static boolean isCellEmpty(final Cell cell) {
if (cell == null || cell.getCellType() == Cell.CELL_TYPE_BLANK) {
return true;
}
if (cell.getCellType() == Cell.CELL_TYPE_STRING && cell.getStringCellValue().isEmpty()) {
return true;
}
return false;
}

并在main方法中while循环后加入:

while (rowIterator.hasNext()) {
row = rowIterator.next();
if (isCellEmpty(row.getCell(2))) {
break;
}
// some code ...
}

但现在我有一个 break 语句。如何在不使用 break 或 continue 的情况下遍历所有非空行?现在(中断)我的算法正常工作 - 我正在获取我需要的数据。我只是想知道是否可以在没有 breakcontinue 的情况下编写代码。

最佳答案

如果你想保持你的 while 循环,并避免中断,最简单的可能是一个状态 boolean 值,例如

boolean inData = true;
while (rowIterator.hasNext() && inData) {
row = rowIterator.next();
if (row == null || isCellEmpty(row.getCell(2))) {
inData = false;
} else {
// Use the row
}
}

否则,我建议 reading the Apache POI documentation on iterating over rows and cells ,您还可以采用其他可能效果更好的方法!

哦,不要忘记行可以是null,因此您需要在尝试获取单元格之前检查这一点

关于java - 如何在不使用 break 或 continue 语句的情况下遍历所有非空行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36304092/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com