нулевое значение в Java - PullRequest
1 голос
/ 29 июля 2010

Я получаю строку от использования Swing, и мне нужно проверить, если это не нуль я использую этот код

if(site.equals(null)) {
    System.out.println("null");
} else  {
    System.out.println("notnull");
}

это всегда показывает "notnull", если есть также ноль

Ответы [ 6 ]

13 голосов
/ 29 июля 2010

Чтобы проверить фактическое значение NULL, используйте == следующим образом:

if (site == null)

Или действительно условный оператор для ситуаций, подобных показанной ниже:

System.out.println(site == null ? "null" : "notnull");

Обратите внимание, чтопустая ссылка не такая же, как пустая строка.Как вы хотите, чтобы пустая строка вела себя?Если бы у вас действительно была нулевая ссылка, то ваш текущий код выдал бы NullPointerException.

Самый простой способ проверки пустой строки - это метод isEmpty:

System.out.println(site.isEmpty() ? "empty" : "not empty");

Примечание:

  • Это вызовет исключение, если site действительно равно null
  • Это будет относиться к пробелам как несущественным

Если вы хотите проверить наличие пустого / пустого / пустого или пустого пространства, существуют различные сторонние библиотеки с такой функциональностью.

6 голосов
/ 29 июля 2010

Проблема, вероятно, связана с тем, что текстовое поле, которое вы используете, всегда будет возвращать строку, только пустую.

Измените свой чек на следующий и посмотрите, работает ли он.

if(site.equals(""))

Обратите внимание, что это не помешает им просто вставить пробел. вам нужно сначала обрезать ввод.

1 голос
/ 31 августа 2011

Если он был нулевым, то он уже дал исключение нулевого указателя. Потому что вы вызываете метод для нулевого объекта. Так что лучше использовать

if(site==null)

А для подтверждения попробуйте это

if(site.equals(null)) {
System.out.println("null");

} еще { System.out.println (сайт); System.out.println ( "NotNull"); }

Будет напечатано значение строки сайта.

0 голосов
/ 29 июля 2010

Вы пробовали класс stringutils? Вот ссылка -> http://commons.apache.org/lang/api/org/apache/commons/lang/StringUtils.html

Вы можете проверять строки "nullness" и "emptiness" на безопасный для нуля способ и действовать соответственно

0 голосов
/ 29 июля 2010

Метод String.equals () возвращает значение true только в том случае, если аргумент не null, и только в том случае, если аргумент является идентичной строкой. См. Документацию.

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

   if (site == null) ...
0 голосов
/ 29 июля 2010

Вы уверены, что строке присваивается null значение, а не "null" строка?

...