je suis sûr que cela a dû être demandé auparavant de différentes manières - comme isEmptyOrNull est si courant mais que les gens l'appliquent différemment. mais j'ai ci-dessous une requête curieuse en termes de meilleure approche disponible, ce qui est bon pour la mémoire et les performances à la fois.
1) La liste ci-dessous ne représente pas tous les espaces comme dans le cas d'une balise XML vide
return inputString==null || inputString.length()==0;
2) Ci-dessous, on prend soin mais l'assiette peut manger de la performance + de la mémoire
return inputString==null || inputString.trim().length()==0;
3) converti en correcteur de modèle (invoqué uniquement lorsque la chaîne est d'une longueur non nulle)
private static final Pattern p = Pattern.compile("\\s+");
return inputString==null || inputString.length()==0 || p.matcher(inputString).matches();
4) Un autre?
Méthode utile chez Apache Commons:
org.Apache.commons.lang.StringUtils.isBlank(String str)
Juste pour montrer la position de Java 8 pour supprimer les valeurs nulles.
String s = Optional.ofNullable(myString).orElse("");
if (s.trim().isEmpty()) {
...
}
Cela a du sens si vous pouvez utiliser Optional<String>
.
Celui-ci de Google Guava pourrait vérifier "Chaînes nulles et vides" dans le même temps.
Strings.isNullOrEmpty("Your string.");
Ajouter une dépendance avec Maven
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>20.0</version>
</dependency>
avec Gradle
dependencies {
compile 'com.google.guava:guava:20.0'
}
Apache Commons Lang a la méthode StringUtils.isEmpty(String str)
qui retourne vrai si l'argument est vide ou nul
Dans la plupart des cas, StringUtils.isBlank(str)
de la bibliothèque Apache commons résoudrait le problème. Mais s'il y a un cas où la chaîne d'entrée en cours de vérification a une valeur null entre guillemets, elle ne parvient pas à vérifier de tels cas.
Prenons un exemple où j'ai un objet d'entrée qui a été converti en chaîne à l'aide de l'API String.valueOf(obj)
. Dans le cas où la référence obj est nulle, String.valueOf renvoie "null" au lieu de null.
Lorsque vous essayez d'utiliser, StringUtils.isBlank("null")
, l'API échoue misérablement, vous devrez peut-être également rechercher de tels cas d'utilisation pour vous assurer que votre validation est correcte.
if (str == null || str.trim().length() == 0) {
// str is empty
}