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

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

Вступление

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

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

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

Использование длины строки

Как упоминалось ранее, строка пуста, если ее длина равна нулю. Мы будем использовать метод 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 , ни пустой. Теперь, основываясь только на длину, мы можем на самом деле не различать между строками , которые содержат только пробельную или любой другой символ, поскольку пробел является Character .

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

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

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

 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() удаляет все пробелы слева и справа от String и возвращает новую последовательность. Если строка пуста , после удаления всех пробелов она будет пустой, поэтому 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. Этот класс содержит методы, используемые для работы со Strings , аналогичные java.lang.String .

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

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

 <dependency> 
 <groupId>org.apache.commons</groupId> 
 <artifactId>commons-lang3</artifactId> 
 <version>3.11</version> 
 </dependency> 

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

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

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

 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() чтобы проверить, является ли String null , пустым или пустым.

comments powered by Disqus