textarea.getText () не работает должным образом в Java - PullRequest
2 голосов
/ 06 июля 2011

У меня есть JTextArea, и я пытаюсь сделать глупый тест, используя textarea.getText ()

if(textarea.getText() == "")
{
    System.out.println("empty string");
}

Когда я делаю это, я ничего не вижу на экране, даже если я ухожутекстовое поле пустое или я что-то набираю внутри него.

if(textarea.getText() != "")
{
    System.out.println("empty string");
}

Но когда я делаю это, я получаю сообщение "пустая строка" во всех случаях.

В чем здесь проблема?

Ответы [ 4 ]

7 голосов
/ 06 июля 2011

При сравнении строк вы должны использовать equals вместо ==:

if("".equals(textarea.getText()))
{
   System.out.println("empty string");
}

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

3 голосов
/ 06 июля 2011

Ваш код должен использовать .equals ():

if(textarea.getText().equals(""))
{
    System.out.println("empty string");
}

== сравнивает ссылку на объект, а не значение объекта

2 голосов
/ 03 января 2013

В качестве альтернативы вы можете использовать метод isEmpty в этом случае:

if(textarea.getText().isEmpty())
{
    System.out.println("empty string");
}
1 голос
/ 06 июля 2011

Пожалуйста, используйте "" .equals (textarea.getText ()) вместо сравнения ссылок.Оператор == сравнивает ссылки на объекты.

...