Проверка, является ли строка пустой или пустой в Java

Я обрабатываю HTML-данные. String может быть null или пустым, когда слово для разбора не соответствует.

Итак, я написал это следующим образом:

if(string.equals(null) || string.equals("")){
    Log.d("iftrue", "seem to be true");
}else{
    Log.d("iffalse", "seem to be false");
}

Когда я удаляю String.equals(""), он работает неправильно.

Я думал, что String.equals("") неверно.

Как лучше всего проверить пустой String?

Ответ 1

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

if(str != null && !str.isEmpty()) { /* do your stuffs here */ }

Ответ 2

Вы можете использовать Apache Commons StringUtils.isEmpty(str), который проверяет пустые строки и обрабатывает null изящно.

Пример:

System.out.println(StringUtils.isEmpty("")); // true
System.out.println(StringUtils.isEmpty(null)); // true

Google Guava также предоставляет аналогичный, возможно, более простой способ чтения: Strings.isNullOrEmpty(str).

Пример:

System.out.println(Strings.isNullOrEmpty("")); // true
System.out.println(Strings.isNullOrEmpty(null)); // true

Ответ 3

Вы можете использовать Apache commons-lang

StringUtils.isEmpty(String str) - Проверяет, является ли строка пустой ("") или нулевой.

или

StringUtils.isBlank(String str) - Проверяет, является ли строка свободной, пустой ("") или нулевой.

последний рассматривает String, который состоит из пробелов или специальных символов, например, "" также пуст. См. Java.lang.Character.isWhitespace API

Ответ 4

Таким образом, вы проверяете, не является ли строка пустой и не пустой, также учитывая пустое пространство:

boolean isEmpty = str == null || str.trim().length() == 0;
if (isEmpty) {
    // handle the validation
}

Ответ 5

if(!Strings.isNullOrEmpty(String str)) {
   // Do your stuff here 
}