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

Проверка наличия пустых или пустых строк в Java

Проверьте несколько простых способов в Java, чтобы проверить, является ли строка пустой или пустой.

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

1. введение

В этом уроке мы рассмотрим некоторые способы проверки пустых или пустых строк в Java. У нас есть несколько подходов к родному языку, а также несколько библиотек.

2. Пустой против Пустой

Конечно, довольно часто бывает знать, когда строка пуста или пуста, но давайте убедимся, что мы находимся на одной странице с нашими определениями.

Мы считаем строку пустой , если она либо null , либо строка без любой длины. Если строка состоит только из пробелов, то мы называем ее пустой .

Для Java пробелы-это символы, такие как пробелы, вкладки и так далее. Взгляните на символ .IsWhiteSpace для примеров.

3. Пустые строки

3.1. С Java 6 и выше

Если мы, по крайней мере, на Java 6, то самый простой способ проверить пустую строку-это String#isEmpty :

boolean isEmptyString(String string) {
    return string.isEmpty();
}

Чтобы сделать его также безопасным для нуля, нам нужно добавить дополнительную проверку:

boolean isEmptyString(String string) {
    return string == null || string.isEmpty();
}

3.2. С Java 5 и ниже

Строка#пуста была введена с Java 6. Для Java 5 и ниже мы можем использовать String#length вместо этого.

boolean isEmptyString(String string) {
    return string == null || string.length() == 0;
}

На самом деле, String#пуст – это просто ярлык для String#length .

4. Пустые строки

Оба String#пусты и String#length могут использоваться для проверки пустых строк.

Если мы также хотим обнаружить пустые строки, мы можем добиться этого с помощью String#trim . Он удалит все начальные и конечные пробелы перед выполнением проверки.

boolean isBlankString(String string) {
    return string == null || string.trim().isEmpty();
}

Чтобы быть точным, String#trim удалит все начальные и конечные символы с кодом Unicode, меньшим или равным U+0020 .

И также помните, что String s неизменяемы, поэтому вызов trim фактически не изменит базовую строку.

5. Проверка бобов

Другой способ проверить наличие пустых строк-это регулярные выражения. Это удобно, например, при проверке Java Bean :

@Pattern(regexp = "\\A(?!\\s*\\Z).+")
String someString;

Данное регулярное выражение гарантирует, что пустые или пустые строки не будут проверяться.

6. С Apache Commons

Если можно добавить зависимости, мы можем использовать Apache Commons Lang . У этого есть множество помощников для Java.

Если мы используем Maven, нам нужно добавить | commons-lang3 зависимость в наш pom:


    org.apache.commons
    commons-lang3

Среди прочего, это дает нам StringUtils .

Этот класс поставляется с такими методами, как isEmpty , isBlank и так далее:

StringUtils.isBlank(string)

Этот вызов делает то же самое, что и наш собственный метод isBlankString . Он безопасен для нуля, а также проверяет наличие пробелов.

7. С Гуавой

Еще одна известная библиотека, которая приносит определенные утилиты, связанные со строками,-это Google Guava . Начиная с версии 23.1, существует два варианта гуавы: android и jre . Аромат Android нацелен на Android и Java 7, в то время как аромат JRE подходит для Java 8.

Если мы не нацелены на Android, мы можем просто добавить аромат JRE в наш pom:


    com.google.guava
    guava
    28.0-jre

Класс Guavas Strings поставляется с методом Strings.IsNullOrEmpty :

Strings.isNullOrEmpty(string)

Он проверяет, является ли данная строка пустой или пустой, но он не будет проверять наличие строк только с пробелами .

8. Заключение

Существует несколько способов проверить, является ли строка пустой или нет. Часто мы также хотим проверить, является ли строка пустой, что означает, что она состоит только из пробелов.

Наиболее удобный способ-использовать Apache Commons Lang, который предоставляет помощников, таких как StringUtils.isBlank . Если мы хотим придерживаться простой Java, мы можем использовать комбинацию String#trim с String#is Empty или String#length . Для проверки бобов вместо этого можно использовать регулярные выражения.

Обязательно ознакомьтесь со всеми этими образцами на GitHub .