J'ai rencontré du code qui a les caractéristiques suivantes:
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();
Une différence entre les deux (org.Apache.commons.lang3.StringUtils.isBlank
et Java.lang.String.isEmpty
)?
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:
Vérifie si une chaîne est un espace, vide ("") ou null.
StringUtils.isBlank(null) = true StringUtils.isBlank("") = true StringUtils.isBlank(" ") = true StringUtils.isBlank("bob") = false StringUtils.isBlank(" bob ") = false
Pour comparaison StringUtils.isEmpty :
StringUtils.isEmpty(null) = true
StringUtils.isEmpty("") = true
StringUtils.isEmpty(" ") = false
StringUtils.isEmpty("bob") = false
StringUtils.isEmpty(" bob ") = false
Avertissement: Dans , Java.lang.String . IsBlank () et Java.lang.String . isEmpty () fonctionne de la même manière, sauf qu'ils ne renvoient pas true
pour null
.
La réponse acceptée de @arshajii est totalement correcte. Cependant, juste pour être plus explicite en disant ci-dessous,
StringUtils.isBlank ()
StringUtils.isBlank(null) = true
StringUtils.isBlank("") = true
StringUtils.isBlank(" ") = true
StringUtils.isBlank("bob") = false
StringUtils.isBlank(" bob ") = false
StringUtils.isEmpty
StringUtils.isEmpty(null) = true
StringUtils.isEmpty("") = true
StringUtils.isEmpty(" ") = false
StringUtils.isEmpty("bob") = false
StringUtils.isEmpty(" bob ") = false
StringUtils isEmpty = String isEmpty vérifie + recherche la valeur null.
StringUtils isBlank = StringUtils isEmpty vérifie + vérifie si le texte ne contient que des espaces personnages).
Liens utiles pour une enquête plus poussée:
StringUtils.isBlank()
recherchera également null, alors que ceci:
String foo = getvalue("foo");
if (foo.isEmpty())
jettera un NullPointerException
si foo
est nul.
StringUtils.isBlank
renvoie également true
uniquement pour les espaces:
isBlank (String str)
Vérifie si une chaîne est un espace, vide ("") ou null.
StringUtils.isBlank(foo)
effectuera un contrôle nul pour vous. Si vous effectuez foo.isEmpty()
et foo
est null, vous déclencherez une exception NullPointerException.
StringUtils.isBlank () renvoie true pour les espaces (uniquement les espaces) et pour la chaîne null. En fait, il coupe les séquences de caractères, puis effectue un contrôle.
StringUtils.isEmpty () renvoie true s'il n'y a pas de séquence de caractères dans le paramètre String ou lorsque le paramètre String est null. La différence est que isEmpty () renvoie false si le paramètre String contient uniquement des espaces blancs. Il considère les espaces comme un état de non vide.
Avec Java 11, isBlank () est disponible.
String str1 = "";
String str2 = " ";
Character ch = '\u0020';
String str3 =ch+" "+ch;
System.out.println(str1.isEmpty()); //true
System.out.println(str2.isEmpty()); //false
System.out.println(str3.isEmpty()); //false
System.out.println(str1.isBlank()); //true
System.out.println(str2.isBlank()); //true
System.out.println(str3.isBlank()); //true
public static boolean isEmpty(String ptext) {
return ptext == null || ptext.trim().length() == 0;
}
public static boolean isBlank(String ptext) {
return ptext == null || ptext.trim().length() == 0;
}
Les deux ont le même code. Comment isBlank gérera-t-il les espaces, probablement que vous vouliez dire? IsBlankString a le code pour la gestion des espaces.
public static boolean isBlankString( String pString ) {
int strLength;
if( pString == null || (strLength = pString.length()) == 0)
return true;
for(int i=0; i < strLength; i++)
if(!Character.isWhitespace(pString.charAt(i)))
return false;
return false;
}
Je réponds à cela parce que c'est le meilleur résultat de Google pour "String isBlank () Method".
Si vous utilisez Java 11 ou une version ultérieure, vous pouvez utiliser la méthode String class isBlank () . Cette méthode fait la même chose que la classe Apache Commons StringUtils.
J'ai écrit un petit post sur cette méthode, lisez-le ici .