Ответ 1
Вы можете попробовать:
if (str[i] == null || str[i].trim().equals("")){
// your code
}
Я не знаю, что не так с приведенным ниже кодом.... Я получаю ввод от текстового поля и помещаю ввод в строку. Если текстовое поле пуст, оно вернет пустую строку. В приведенном ниже коде
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]
, ничего не показывает, что означает, что она пуста.
Я делаю что-то не так?
Вы можете попробовать:
if (str[i] == null || str[i].trim().equals("")){
// your code
}
Вы можете использовать Apache Commons Lang для проверки строки:
if (StringUtils.isBlank(str[i]) {
...
}
StringUtils.isBlank
проверяет, является ли строка null
или пустой (т.е. если она равна ""
, когда все пустые символы удалены).
Вышеприведенный код выполняется только в том случае, если строка пуста, является ли это желаемым поведением? Кроме того, объявляя str как новое прямо перед циклом, он гарантирует, что он будет пустым.
Если вы пытаетесь присвоить значения из текстовых полей, вам нужно будет иметь эти назначения где-то перед циклом.
Я действительно пытался запустить фрагмент кода и получил исключение NullPointerException на вашем условном
ул [I].equals( "")
str [i] == null работал у меня. Вы уверены, что задали правильный код в своем вопросе. Кажется странным тестировать пустую строку пустого массива, который вы только что инициализировали.
Я бы порекомендовал
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() перегружен, чтобы проверить пустую строку.
Очень простое решение может быть таким.
if(str[] != null && !str[].equals(""))