2009-12-24 3 views
16

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

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], ничего не показывает, что означает, что она пуста.

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

+1

Что вы пытаетесь проверить? Вы проверяете, является ли строка пустой, а затем выполните печать, и результат, как вы говорите, является чем-то вроде «set» + ..., так как вы не видите пустую строку :). Вероятно, вы хотите проверить не условие: ie if (! Str [i] .equals ("")). – sateesh

+0

Действительно, просто проверьте if() condition ... – ThinkJet

+0

Как вы думаете, вы можете отредактировать свой вопрос, чтобы сделать это более понятным? Из комментариев и ответов я вижу, что я не единственный, кто не уверен, что вы действительно хотите ... :-( – KLE

ответ

27

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

if (str[i] == null || str[i].trim().equals("")){ 
// your code 
} 
+2

это сработало для меня .... Большое спасибо .. –

+1

Это не Javascript. – vivek

0

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

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

15

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

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

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

+0

Что произойдет, если кто-то просто войдет в космос? – Jony

+1

@AshishDonvir 'StringUtils.isBlank (" ")' возвращает 'true'. Если вы хотите, чтобы этот тест возвращал 'false', вы можете использовать' StringUtils.isEmpty (...) 'вместо этого. – romaintaz

0

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

ул [я] .equals ("")

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

0

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

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

или Java 6 вперед

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

Вместо использования равных(), потому что Equals() method is overkill to test for an empty String.

0

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

if(str[] != null && !str[].equals("")) 
Смежные вопросы