Рубрики
Без рубрики

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

В этом уроке мы рассмотрим, как проверить, является ли строка нулевой, пустой или пустой в Java, используя String.isEmpty(), String.equals() и Apache Commons с примерами.

Автор оригинала: Selena Hocevar.

Вступление

В Java существует явная разница между null , пустыми и пустыми строками.

  • Пустая строка-это объект String с присвоенным значением, но ее длина равна нулю.
  • Строка null вообще не имеет значения.
  • Пустая строка содержит только пробелы , не является ни пустой , ни нулевой , так как она имеет присвоенное значение и не имеет 0 длина.
String nullString = null;
String emptyString = "";
String blankString = " ";

В этом уроке мы рассмотрим как проверить, является ли строка пустой, пустой или пустой в Java :

  • Используя длину строки
  • Использование метода String.isEmpty()
  • Использование метода String.equals()
  • Использование класса StringUtils

Используя длину строки

Как упоминалось ранее, строка пуста, если ее длина равна нулю. Мы будем использовать метод length () , который возвращает общее количество символов в нашей строке.

String blankString = " ";

if(blankString == null || blankString.length() == 0)
    System.out.println("This string is null or empty");
else
    System.out.println("This string is neither null nor empty");

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

This string is null or empty

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

Примечание: Важно выполнить null -проверку сначала , так как короткое замыкание ИЛИ оператор немедленно прервутся при первом истинном условии. Если строка на самом деле является null , все остальные условия перед ней вызовут исключение NullPointerException

Использование метода isEmpty()

Метод isEmpty() возвращает true или false в зависимости от того, содержит ли наша строка какой-либо текст. Он легко цепляется с помощью строки проверки и даже может различать пустые и пустые строки:

String string = "Hello there";

if (string == null || string.isEmpty() || string.trim().isEmpty()) 
    System.out.println("String is null, empty or blank.");
else
    System.out.println("String is neither null, empty nor blank");

Метод trim() удаляет все пробелы слева и справа от строки и возвращает новую последовательность. Если строка пуста, то после удаления всех пробелов она будет пустой , поэтому isEmpty() вернет true .

Запуск этого фрагмента кода даст нам следующий результат:

String is neither null, empty nor blank

Использование метода equals()

Метод equals() сравнивает две заданные строки на основе их содержимого и возвращает true , если они равны или false , если это не так:

String string = "Hello there";

if(string == null || string.equals("") || string.trim().equals(""))
    System.out.println("String is null, empty or blank");
else
    System.out.println("String is neither null, empty nor blank");

Во многом так же, как и раньше , если обрезанная строка "" , она либо была пустой с самого начала, либо была пустой строкой с 0..n пробелами:

String is neither null, empty nor blank

Использование класса StringUtils

Apache Commons – это популярная библиотека Java, которая предоставляет дополнительные функциональные возможности. StringUtils – это один из классов, предлагаемых Apache Commons. Этот класс содержит методы , используемые для работы со строками |, аналогичными java.lang.Строка .

Если вы не знакомы с вспомогательными классами Apache Commons, мы настоятельно рекомендуем прочитать наше руководство по классу StringUtils .

Поскольку мы будем использовать Apache Commons для этого подхода, давайте добавим его в качестве зависимости:


    org.apache.commons
    commons-lang3
    3.11

Или, если вы используете Gradle:

compile group: 'org.apache.commons', name: 'commons-lang3', version: '3.11'

Одно из ключевых различий между методами Sting Utils и String заключается в том, что все методы из класса StringUtils являются безопасными для нуля . Он также предоставляет несколько методов, которые мы можем использовать для этого, включая StringUtils.isEmpty() и StringUtils.isBlank() :

Git Essentials

Ознакомьтесь с этим практическим руководством по изучению Git, содержащим лучшие практики и принятые в отрасли стандарты. Прекратите гуглить команды Git и на самом деле изучите это!

String nullString = null;

if(nullString == null) {
    System.out.println("String is null");
}
else if(StringUtils.isEmpty(nullString)) {
    System.out.println("String is empty");
}
else if(StringUtils.isBlank(nullString)) {
    System.out.println("String is blank");
}

Результатом будет:

String is null

В дополнение к ним также существуют их обратные методы: StringUtils.isNotEmpty() и StringUtils.isNotBlank() , однако вы можете достичь той же функциональности, используя НЕ ( ! ) оператор:

if(StringUtils.isNotEmpty(""))
    System.out.println("String is not empty");
    
// Equivalent to

if(!StringUtils.isEmpty(""))
    System.out.println("String is not empty");

Вывод

Строка-это объект, представляющий последовательность символов. Java предоставляет множество различных методов для обработки строк. В этой статье мы использовали некоторые из этих методов, такие как isEmpty() , equals() , StringUtils.isEmpty() и length () , чтобы проверить, является ли Строка | нулевой , пустой или пустой.