如何在for循环中获取前2个元素,然后跳过第三个元素java

如何在for循环中获取前2个元素,然后跳过第三个元素java,java,apache-poi,Java,Apache Poi,我有一行arraylist数据,如下所示 JANUARY | DAY1 | ABSENT | MC | DAY2 | ABSENT| MC | DAY3 |ACTIVE| - | DAY4 |ACTIVE | - | FEBRUARY| DAY1 | ACTIVE | | DAY2 | ABSENT| MC | DAY3 |ACTIVE| - | DAY4 |ACTIVE | - | MARCH | DAY1 | ABSENT | MC | DAY2 | ACTIVE| - | DA

我有一行arraylist数据,如下所示

JANUARY | DAY1 | ABSENT | MC | DAY2 | ABSENT| MC | DAY3 |ACTIVE| - | DAY4 |ACTIVE | - |
FEBRUARY| DAY1 | ACTIVE |    | DAY2 | ABSENT| MC | DAY3 |ACTIVE| - | DAY4 |ACTIVE | - |
MARCH   | DAY1 | ABSENT | MC | DAY2 | ACTIVE| -  | DAY3 |ACTIVE| - | DAY4 |ACTIVE | - |
或者在arraylist的形式中是这样的

[JANUARY,DAY1,ABSENT,MC,DAY2,ABSENT,MC,DAY3,ACTIVE,-,DAY4,ACTIVE,]
[FEBRUARY,DAY1,ACTIVE ,-,DAY2,ABSENT,MC,DAY3,ACTIVE,-,DAY4,ACTIVE,]
[MARCH,DAY1,ABSENT,MC,DAY2,ACTIVE,-,DAY3,ACTIVE,-,DAY4,ACTIVE,-]
因此,除了存储所有数据,我想在这里实现的是只存储列DAY1、DAY2、DAY3、DAY4之后的数据,如下所示:

[ABSENT,MC,ABSENT,MC,ACTIVE,-,ACTIVE,-]
[ACTIVE,-,ABSENT,MC,ACTIVE,-,ACTIVE,-]
[ABSENT,MC,ABSENT,MC,ACTIVE,-,ACTIVE,]
对于循环,我当前的代码如下所示:

    DataFormatter formatter = new DataFormatter();

        String val = null;

        for (int rowNum = 1; rowNum < sheet.getLastRowNum(); rowNum++) {
            Row r = sheet.getRow(rowNum);

            ArrayList<String> al = new ArrayList<String>();


            for (int i = 2; i+2 < r.getLastCellNum() + 1; i = i + 3) {
                Cell cell = r.getCell(i);
                val = formatter.formatCellValue(cell);
                al.add(val);
            }

            System.out.println(al);
        }
DataFormatter formatter=newdataformatter();
字符串val=null;
对于(int rowNum=1;rowNum

但这只会导致缺少的第一个元素。它仍然缺少它的下一个元素。请帮助我。

您可以在for循环中添加第一个元素和第二个元素

DataFormatter formatter = new DataFormatter();

    String val = null;

    for (int rowNum = 1; rowNum < sheet.getLastRowNum(); rowNum++) {
        Row r = sheet.getRow(rowNum);

        ArrayList<String> al = new ArrayList<String>();


        for (int i = 2; i+2 < r.getLastCellNum() + 1; i = i + 3) {
            Cell cell = r.getCell(i);
            val = formatter.formatCellValue(cell);
            al.add(val);
            cell = r.getCell(i+1);
            val = formatter.formatCellValue(cell);
            al.add(val);
        }

        System.out.println(al);
    }
DataFormatter formatter=newdataformatter();
字符串val=null;
对于(int rowNum=1;rowNum
您可以在for循环中添加第一个元素和第二个元素

DataFormatter formatter = new DataFormatter();

    String val = null;

    for (int rowNum = 1; rowNum < sheet.getLastRowNum(); rowNum++) {
        Row r = sheet.getRow(rowNum);

        ArrayList<String> al = new ArrayList<String>();


        for (int i = 2; i+2 < r.getLastCellNum() + 1; i = i + 3) {
            Cell cell = r.getCell(i);
            val = formatter.formatCellValue(cell);
            al.add(val);
            cell = r.getCell(i+1);
            val = formatter.formatCellValue(cell);
            al.add(val);
        }

        System.out.println(al);
    }
DataFormatter formatter=newdataformatter();
字符串val=null;
对于(int rowNum=1;rowNum
如果要忽略第一列和第二列

for (int i = 1; i < r.getLastCellNum(); i++) {
    Cell cell = r.getCell(i);
    String val = formatter.formatCellValue(cell);
    if (!val.startsWith("DAY")) {
        al.add(val);
    }
}
for(int i=1;i
如果要忽略第一列和第二列

for (int i = 1; i < r.getLastCellNum(); i++) {
    Cell cell = r.getCell(i);
    String val = formatter.formatCellValue(cell);
    if (!val.startsWith("DAY")) {
        al.add(val);
    }
}
for(int i=1;i
谢谢您的帮助,先生。这项工作就像一个我能帮助的魔术师。如果它解决了您的问题,请将其标记为答案。谢谢您的帮助。这项工作就像一个我能帮助的魔术师。如果它解决了您的问题,请将其标记为答案。