继续嵌套嵌套循环

时间:2018-08-26 18:35:42

标签: java apache for-loop continue

我在Java中使用Apache POI读取Excel文件。但是,每当我尝试跳过当前行并使用嵌套的for循环读取excel工作表的下一行时,都会遇到问题。

例如,假设我有一个看起来像这样的表(其中“-”表示一个空单元格):

self pace baseline 1 13 - - - -
self pace baseline 5 72 23 76 2 90 self pace baseline 6 43 12 45 11 10 self pace baseline 8 91 13 74 76 12

理想情况下,我的代码将创建6个包含每一列内容的数组,如下所示:

[1,5,6,8], [13,72,43,91], [23,12,13], [76,45,74]... etc.

但是,这是我得到的:

[1,5,6,8], [13,72,43,91], [13,23,12,13], [13,76,45,74], [13,2,11,76], [13,90,10,12]

我认为代码的else部分中的Continue将跳到循环的下一个迭代,但这不是正在发生的事情。该行中最后一个非空单元格的内容似乎随后会插入到每个数组中。

这是我的示例代码:

int inTotalRows = inSheet.getPhysicalNumberOfRows();

for (int j = 2; j < 7; j++) {
            for (int i = 2; i < inTotalRows; i++) {

                row1 = inSheet.getRow(i);
                inCell = row1.getCell(j);
                memoCheck = row1.getCell(1);
                String memoCheckText = formatter.formatCellValue(memoCheck).toLowerCase().replaceAll("\\s", "");
                referenceCheck = row1.getCell(0);
                String referenceCheckText = formatter.formatCellValue(referenceCheck).toLowerCase().replaceAll("\\s", "");

                if (memoCheckText.contains("baseline") && (referenceCheckText.equals("selfpace") || referenceCheckText.equals("self-pace"))) {
                    if (inCell != null) {
                        String text = formatter.formatCellValue(inCell);
                        Double textToDouble = Double.parseDouble(text);
                        BSarray[i] = textToDouble;
                    } else {
                        continue;
                    }

编辑:这与“突破Java中的嵌套循环”不重复。相反,我试图弄清楚为什么我的数组为什么要包含最后一个非空单元格值,即使我已经指定要使用continue跳过并继续进行数组的下一次迭代

0 个答案:

没有答案