Проверка пустой строки в Java - PullRequest
16 голосов
/ 24 декабря 2009

Я не знаю, что не так с приведенным ниже кодом .... Я получаю ввод из текстового поля и помещаю ввод в строку. Если текстовое поле пусто, оно вернет пустую строку. В приведенном ниже коде

   String[] str = new String[9]; 
   for(int i=0;i<9;i++){
       if(str[i].equals("")){
          System.out.println("set " + cmds[i] + " " + str[i]);
          WriteThread.sendCommand("set " + cmds[i] + " " + str[i] + "\n", false);
       }
    }

В приведенном выше коде str[i] хранит текст ввода текстовых полей, и я пытаюсь проверить, является ли какой-либо элемент массива пустым. Я также пытался с str[i] == "" и str[i] == null, но не повезло. Инструкция внутри блока if, если я печатаю строку str[i], ничего не показывает, что означает, что она пустая.

Я что-то делаю не так?

Ответы [ 6 ]

27 голосов
/ 24 декабря 2009

Вы можете попробовать:

if (str[i] == null || str[i].trim().equals("")){
// your code
}
15 голосов
/ 24 декабря 2009

Вы можете использовать Apache Commons Lang для проверки строки:

if (StringUtils.isBlank(str[i]) {
    ...
}

StringUtils.isBlank проверяет, является ли строка null или пустой (т. Е. Если она равна "" при удалении всех пустых символов).

1 голос
/ 29 июня 2014

Я бы порекомендовал

if (str[i] == null || str[i].trim().length==0){
// your code
}

или Java 6 и далее

if (str[i] == null || str[i].trim().isEmpty()){
// your code
}

Вместо использования equals (), потому что метод equals () лишний, чтобы проверить пустую строку .

0 голосов
/ 11 ноября 2015

Очень простое решение может быть таким.

if(str[] != null && !str[].equals(""))
0 голосов
/ 24 декабря 2009

Я действительно попытался запустить ваш фрагмент кода и получил исключение NullPointerException для вашего условного

ул [I] .equals ( "")

str [i] == Нуль работал для меня. Вы уверены, что поставили правильный код в своем вопросе? Кажется странным проверять пустую строку пустого массива, который вы только что инициализировали.

0 голосов
/ 24 декабря 2009

Приведенный выше код выполняется только, если строка пуста, это желаемое поведение? Также объявление str как нового прямо перед циклом в значительной степени гарантирует, что он будет пустым.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...