J'ai rencontré un code qui présente les éléments suivants:
String foo = getvalue("foo");
if (StringUtils.isBlank(foo))
doStuff();
else
doOtherStuff();
Cela semble être fonctionnellement équivalent à ce qui suit:
String foo = getvalue("foo");
if (foo.isEmpty())
doStuff();
else
doOtherStuff();
Y a-t-il une différence entre les deux ( org.apache.commons.lang3.StringUtils.isBlank
et java.lang.String.isEmpty
)?
StringUtils.isEmpty(foo)
qui vous aide à éviter les pointeurs nuls, tout commeisBlank
, mais ne vérifie pas les caractères blancs.Réponses:
StringUtils.isBlank()
vérifie que chaque caractère de la chaîne est un caractère d'espacement (ou que la chaîne est vide ou qu'elle est nulle). C'est totalement différent de simplement vérifier si la chaîne est vide.De la documentation liée:
Pour comparaison StringUtils.isEmpty :
Avertissement: Dans java.lang.String .isBlank () et java.lang.String .isEmpty () fonctionnent de la même façon, sauf qu'ils ne reviennent pas
true
pournull
.java.lang.String.isBlank()
java.lang.String.isEmpty()
la source
La réponse acceptée de @arshajii est totalement correcte. Mais en étant plus explicite en disant ci-dessous,
StringUtils.isBlank ()
StringUtils.isEmpty
la source
StringUtils isEmpty = String isEmpty vérifie + vérifie la valeur null.
StringUtils isBlank = StringUtils isEmpty vérifie + vérifie si le texte ne contient que des caractères d' espacement .
Liens utiles pour une enquête plus approfondie:
la source
StringUtils.isBlank()
vérifiera également null, alors que ceci:va lancer un
NullPointerException
iffoo
est nul.la source
StringUtils.isBlank
renvoie égalementtrue
juste un espace:la source
StringUtils.isBlank(foo)
effectuera une vérification nulle pour vous. Si vous effectuezfoo.isEmpty()
etfoo
est null, vous déclencherez une NullPointerException.la source
StringUtils.isBlank () renvoie true pour les espaces vides (juste les espaces blancs) et pour String nul également. En fait, il coupe les séquences de caractères et effectue ensuite une vérification.
StringUtils.isEmpty () renvoie true lorsqu'il n'y a aucune conséquence dans le paramètre String ou lorsque le paramètre String est nul. La différence est que isEmpty () retourne false si le paramètre String ne contient que des whiltespaces. Il considère les espaces blancs comme un état de non vide.
la source
La seule différence entre isBlank () et isEmpty () est:
la source
Les deux ont le même code. Comment isBlank va-t-il gérer les espaces blancs?
la source
Au lieu d'utiliser une bibliothèque tierce, utilisez Java 11 isBlank ()
la source
Je réponds à cela parce que c'est le meilleur résultat dans Google pour "String isBlank () Method".
Si vous utilisez Java 11 ou supérieur, vous pouvez utiliser la méthode isBlank () de la classe String . Cette méthode fait la même chose que la classe Apache Commons StringUtils.
J'ai écrit un petit post sur les exemples de cette méthode, lisez-le ici .
la source