Я столкнулся с кодом, который имеет следующее:
String foo = getvalue("foo");
if (StringUtils.isBlank(foo))
doStuff();
else
doOtherStuff();
Похоже, это функционально эквивалентно следующему:
String foo = getvalue("foo");
if (foo.isEmpty())
doStuff();
else
doOtherStuff();
Есть ли разница между двумя ( org.apache.commons.lang3.StringUtils.isBlank
и java.lang.String.isEmpty
)?
StringUtils.isEmpty(foo)
который помогает вам избегать нулевых указателейisBlank
, но не проверяет пробельные символы.Ответы:
StringUtils.isBlank()
проверяет, является ли каждый символ строки пробельным символом (или что строка пуста или что она пуста). Это полностью отличается от проверки, является ли строка пустой.Из связанной документации:
Для сравнения StringUtils.isEmpty :
Внимание: В java.lang.String .isBlank () и java.lang.String .isEmpty () работают так же , за исключением того, что они не вернутся
true
кnull
.java.lang.String.isBlank()
java.lang.String.isEmpty()
источник
Принятый ответ от @arshajii совершенно правильный. Однако просто быть более явным, сказав ниже,
StringUtils.isBlank ()
StringUtils.isEmpty
источник
StringUtils isEmpty = String isEmpty проверяет + проверяет нулевое значение.
StringUtils isBlank = StringUtils isEmpty проверяет + проверяет, содержит ли текст только пробельные символы.
Полезные ссылки для дальнейшего изучения:
источник
StringUtils.isBlank()
также проверит на ноль, тогда как это:бросит,
NullPointerException
еслиfoo
ноль.источник
StringUtils.isBlank
также возвращаетсяtrue
только для пробелов:источник
StringUtils.isBlank(foo)
выполнит для вас нулевую проверку. При выполненииfoo.isEmpty()
иfoo
имеет нулевое значение, вы будете поднимать NullPointerException.источник
StringUtils.isBlank () возвращает true для пробелов (только пробелы), а также для нулевой строки. На самом деле он обрезает последовательности Char и затем выполняет проверку.
StringUtils.isEmpty () возвращает true, если в параметре String нет последовательности символов или когда параметр String равен нулю. Разница в том, что isEmpty () возвращает false, если параметр String содержит только пробелы. Он рассматривает пробелы как состояние не пустого.
источник
Единственная разница между isBlank () и isEmpty () заключается в следующем:
источник
Оба имеют одинаковый код, как isBlank будет обрабатывать пробелы, возможно, вы имели в виду isBlankString, в котором есть код для обработки пробелов.
источник
Вместо использования сторонних библиотек используйте Java 11 isBlank ()
источник
Я отвечаю на это, потому что это лучший результат в Google для "String isBlank () Method".
Если вы используете Java 11 или выше, вы можете использовать класс String isBlank () . Этот метод делает то же самое, что и класс Apache Commons StringUtils.
Я написал небольшой пост о примерах этого метода, прочитайте его здесь .
источник