Как пропустить строку, когда выполняется цикл for, а строка пуста

#java #selenium

#java #selenium

Вопрос:

У меня есть 2 листа Excel, я сравниваю значения ячеек, используя testNg утверждение. Ниже приведены значения в листах 1 и лист2, после david у меня есть пустая строка на обоих листах, мой скрипт терпит неудачу, поскольку строка 3 пуста, и она не переходит в строку 4?

 Sheet1  Sheet2

sachin  sachin
david   david

winter  winter
  

Я написал следующий код:-

 int rowCount = xlib.getRowCount("Sheet1");

for (int i = 0; i<=rowCount;i  )
{
    String compair1= xlib.getExcelData("Sheet1", i, 0);
    System.out.println(compair1);
    String compair2=xlib.getExcelData("Sheet2", i, 0); 
    System.out.println(compair2);
    Assert.assertEquals(compair1, compair2);
    System.out.println("compared successfully");
}   
  

Нужен правильный код, он должен пропустить 3-ю строку, поскольку она имеет пустое значение, и перейти к 4-й строке, сравнить и передать скрипт.

Комментарии:

1. Добавьте проверку того, что значение compair1 или compair2 равно null, и если это так, не утверждайте.

2. Вы могли бы просто очистить свои данные … или захватить все данные и отфильтровать пустые.

Ответ №1:

Используйте continue инструкцию.

 int rowCount = xlib.getRowCount("Sheet1");

for (int i = 0; i<=rowCount;i  )
{
    try {
        String compair1= xlib.getExcelData("Sheet1", i, 0);
        System.out.println(compair1);
        String compair2=xlib.getExcelData("Sheet2", i, 0); 
        System.out.println(compair2);
        Assert.assertEquals(compair1, compair2);
        System.out.println("compared successfully");
    } catch (Exception e) {
        continue;
    }
}   
  

Комментарии:

1. Спасибо, что помогло!!! Но у меня есть другая проблема, у меня есть несколько строк с форматом даты (мм-дд-гггг), не удается прочитать эту запись, в ней указано значение текстовой ячейки как числовое, есть ли какой-нибудь способ, я могу прочитать формат даты и сравнить оба листа или мне нужно изменить формат даты в самом Excel?

2. Это считается другим вопросом и, следовательно, должно быть отдельным от этого. Пожалуйста, задайте отдельный вопрос относительно этой проблемы.

Ответ №2:

Вы могли бы установить цикл от i до i<=2. После этого цикла выполните еще один цикл от i = 4 до i <=rowCount.

Комментарии:

1. это один пример, но на самом деле у меня до 50 строк, некоторые из них пустые в середине, я не могу использовать много циклов вместо этого, могу ли я получить что-нибудь, если оператор, указывающий, что если строка пуста, пропустить и перейти к следующей строке вот так?

2. О, в таком случае ответ TheChubbyPanda должен быть тем, что вы ищете.