Encontrei um código com o seguinte:
String foo = getvalue("foo");
if (StringUtils.isBlank(foo))
doStuff();
else
doOtherStuff();
Isso parece ser funcionalmente equivalente ao seguinte:
String foo = getvalue("foo");
if (foo.isEmpty())
doStuff();
else
doOtherStuff();
Existe uma diferença entre os dois ( org.apache.commons.lang3.StringUtils.isBlank
e java.lang.String.isEmpty
)?
java
string
string-utils
NSA
fonte
fonte
StringUtils.isEmpty(foo)
que ajuda a evitar ponteiros nulos, assim comoisBlank
, mas não verifica caracteres em branco.Respostas:
StringUtils.isBlank()
verifica se cada caractere da string é um espaço em branco (ou se a string está vazia ou se é nula). Isso é totalmente diferente do que apenas verificar se a string está vazia.Na documentação vinculada:
Para comparação StringUtils.isEmpty :
Aviso: Em java.lang.String .isBlank () e java.lang.String .isEmpty () funcionam da mesma forma, exceto que eles não voltar
true
paranull
.java.lang.String.isBlank()
java.lang.String.isEmpty()
fonte
A resposta aceita de @arshajii está totalmente correta. No entanto, apenas sendo mais explícito, dizendo abaixo,
StringUtils.isBlank ()
StringUtils.isEmpty
fonte
StringUtils isEmpty = String isEmpty verifica + verifica se nulo.
StringUtils isBlank = StringUtils isEmpty verifica + verifica se o texto contém apenas caracteres em branco.
Links úteis para uma investigação mais aprofundada:
fonte
StringUtils.isBlank()
também verificará nulo, enquanto isso:jogará um
NullPointerException
iffoo
é nulo.fonte
StringUtils.isBlank
também retornatrue
por apenas espaço em branco:fonte
StringUtils.isBlank(foo)
executará uma verificação nula para você. Se você executarfoo.isEmpty()
efoo
for nulo, você gerará uma NullPointerException.fonte
StringUtils.isBlank () retorna true para espaços em branco (apenas espaços em branco) e também para String nula. Na verdade, apara as seqüências Char e executa a verificação.
StringUtils.isEmpty () retorna true quando não há charsequence no parâmetro String ou quando o parâmetro String é nulo. A diferença é que isEmpty () retorna false se o parâmetro String contiver apenas espaços em branco. Ele considera os espaços em branco como um estado de não estar vazio.
fonte
A única diferença entre isBlank () e isEmpty () é:
fonte
Ambos têm o mesmo código, como o isBlank lidará com espaços em branco, provavelmente você quis dizer isBlankString, este possui o código para lidar com espaços em branco.
fonte
Em vez de usar lib de terceiros, use Java 11 isBlank ()
fonte
Estou respondendo a isso porque é o principal resultado no Google para "String isBlank () Method".
Se você estiver usando Java 11 ou superior, poderá usar o método isBlank () da classe String . Esse método faz a mesma coisa que a classe Apache Commons StringUtils.
Eu escrevi um pequeno post sobre exemplos deste método, leia-o aqui .
fonte