Автор оригинала: 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 ()
, чтобы проверить, является ли Строка
| нулевой , пустой или пустой.