Ответ 1
Если вы хотите использовать Guava для репликации поведения isBlank, я бы использовал вместо этого следующий метод:
Strings.nullToEmpty(str).trim().isEmpty()
Есть ли какие-либо преимущества при использовании
StringUtils.isBlank(str)
из Apache commons-lang.
vs
Strings.isNullOrEmpty(String string)
из Google Guava?
Я хочу заменить сотни случаев их использования в проекте Java:
if(str == null || str.isEmpty())
Guava isNullOrEmpty кажется прямой заменой использованию выше в моем проекте.
Но больше людей, похоже, используют Apache isBlank метод, основанный на моем чтении S.O. вопросы.
Единственное отличие состоит в том, что StringUtils.isBlank(str)
также проверяет пробелы в дополнение к проверке, является ли строка пустой или пустой.
Обычно рекомендуется проверить строку для пробелов или может привести к другому результату в вашем коде, чем простая проверка Guava?
Если вы хотите использовать Guava для репликации поведения isBlank, я бы использовал вместо этого следующий метод:
Strings.nullToEmpty(str).trim().isEmpty()
Когда вам нужно принимать данные от людей, вы должны прощать и стирать ведущие и конечные пробелы из любого текста, который они набирают, если это имеет смысл в конкретном приложении.
Тем не менее, использование isBlank
является только полузакрытым. Вам также нужно trim
строки перед их дальнейшей обработкой. Поэтому я предлагаю использовать s = trim(s);
перед проверкой с помощью isNullOrEmpty
.
isBlank
невероятно переоценивается. Код UI, который читает текст пользователя прямо из полей ввода, может обрезать пробелы раз и навсегда, а затем вы можете перестать беспокоиться об этом.
StringUtils.isBlank(str)
очень сильно отличается от Strings.isNullOrEmpty(String string)
первый пример кода будет проверять, является ли строка пустой или нет, она также будет содержать пробелы и возвращает
true
StringUtils.isBlank(null) = true
StringUtils.isBlank("") = true
StringUtils.isBlank(" ") = true
StringUtils.isBlank("bob") = false
StringUtils.isBlank(" bob ") = false
где as
Strings.isNullOrEmpty(String string)
Возвращаетtrue
, если заданная строка равна null или является пустой строкой
Гуава более или менее нацелена на замену Apache Commons на "следующее поколение". Практически не существует большой практической разницы между использованием isBlank() vs isNullOrEmpty() за пределами использования одного или другого последовательно.