Por qué "cellIterator.hasNext ()" se está volviendo "VERDADERO" aunque la celda tenga un valor vacío

considere a continuación la captura de pantalla de mi hoja de Excel

ingrese la descripción de la imagen aquí

Ahora considere el siguiente código, que iterará cada fila, iterará cada celda y luego imprimirá el valor de la celda.

public void excelData2(int sheetNo) {
    Iterator<Row> rowIterator = workbook.getSheetAt(sheetNo).rowIterator();
    while (rowIterator.hasNext()) {
        Row row = rowIterator.next();

        Iterator<Cell> cellIterator = row.cellIterator();
        while (cellIterator.hasNext()) {
            Cell cell = cellIterator.next();
            String cellValue = dataFormatter.formatCellValue(cell);
            System.out.print(cellValue + "\t");
        }
        System.out.println();
    }
}

En realidad, al mirar la hoja de Excel, podemos ver que hay 2 filas y 1 columna a la derecha.

Entonces, el primer whilebucle está iterando dos veces como se esperaba :), pero el whilebucle interno que cellIteratorestá bucleando 26 veces en lugar de 1 vez a pesar de que la siguiente celda no tiene ningún valor. Idealmente, cuando en la segunda iteración cellIterator.hasNext()debería dar falso derecho? ¿Por qué está dando verdadero valor hasta 26 veces? Alguien tiene idea?

Nota: No quiero poner condición como isEmpty()o ==""etc.

Nota 2: Tengo otra solución en mi mente, puedo ir con eso. Pero quiero saber por qué sucede esto.

Respuesta 1

El ejemplo es una clase de tarjeta con un método swap (). Se instancian dos objetos de la Tarjeta. El método los intercambia declarando una tercera variable de Tarjeta, pero sin instanciar un tercer objeto. El tercero ...

Tengo que crear una clase común que configure el controlador web de selenio. Mi clase base de configuración: Setupbase.java public void setUp () lanza Exception {driver = new FirefoxDriver (); baseUrl = "http: // ejemplo ....

Código public HttpRequest (BufferedReader from) {String firstLine = ""; pruebe {firstLine = from.readLine (); } catch (IOException e) {System.out.println ("Error al leer la línea de solicitud:" + e); } ...

Estimados desarrolladores de StackOverFlow Quiero una ayuda de ustedes. Estoy atascado en Apache Lucene para usar en la aplicación Java Swing. El problema es tan complejo que incluso estoy confundido, ¿cómo debo preguntarlo? Por favor, inténtalo ...