Vérification des chaînes vides ou vides en Java

1. Introduction

Dans ce didacticiel, nous allons passer en revue certaines façons de vérifier les chaînes vides ou vides en Java. Nous avons des approches en langue native ainsi que quelques bibliothèques.

2. Vide ou vide

Il est, bien sûr, assez courant de savoir quand une chaîne est vide ou vide, mais assurons-nous que nous sommes sur la même page avec nos définitions.

Nous considérons une chaîne à vide si elle est soit nul ou une chaîne sans aucune longueur. Si une chaîne se compose uniquement d'espaces blancs, nous l'appelons vide .

Pour Java, les espaces sont des caractères tels que des espaces, des tabulations, etc. Jetez un œil à Character.isWhitespace pour des exemples.

3. Chaînes vides

3.1. Avec Java 6 et supérieur

Si nous sommes au moins sur Java 6, le moyen le plus simple de rechercher une chaîne vide est String # isEmpty :

boolean isEmptyString(String string) { return string.isEmpty(); }

Pour le rendre également sûr pour les valeurs nulles, nous devons ajouter une vérification supplémentaire:

boolean isEmptyString(String string)  string.isEmpty(); 

3.2. Avec Java 5 et inférieur

String # isEmpty a été introduit avec Java 6. Pour Java 5 et les versions antérieures , nous pouvons utiliser String # length à la place.

boolean isEmptyString(String string)  return string == null 

En fait, String # isEmpty n'est qu'un raccourci vers la longueur String # .

4. Chaînes vides

Les deux String # isEmpty et String # length peuvent être utilisés pour vérifier les chaînes vides .

Si nous voulons également détecter des chaînes vides , nous pouvons y parvenir à l'aide de String # trim . Il supprimera tous les espaces de début et de fin avant d'effectuer la vérification.

boolean isBlankString(String string)  string.trim().isEmpty(); 

Pour être précis, String # trim supprimera tous les caractères de début et de fin avec un code Unicode inférieur ou égal à U + 0020.

Et rappelez-vous également que les String s sont immuables, donc appeler trim ne changera pas réellement la chaîne sous-jacente.

5. Validation du bean

Les expressions régulières sont une autre façon de vérifier les chaînes vides . Cela est pratique par exemple avec Java Bean Validation:

@Pattern(regexp = "\\A(?!\\s*\\Z).+") String someString;

L'expression régulière donnée garantit que les chaînes vides ou vides ne seront pas validées.

6. Avec Apache Commons

Si vous pouvez ajouter des dépendances, nous pouvons utiliser Apache Commons Lang. Cela a une foule d'aides pour Java.

Si nous utilisons Maven, nous devons ajouter la dépendance commons-lang3 à notre pom:

 org.apache.commons commons-lang3 

Entre autres choses, cela nous donne StringUtils .

Cette classe est fournie avec des méthodes comme isEmpty , isBlank et ainsi de suite:

StringUtils.isBlank(string)

Cet appel fait la même chose que notre propre méthode isBlankString . C'est null-safe et vérifie également les espaces.

7. Avec goyave

Une autre bibliothèque bien connue qui apporte certains utilitaires liés aux chaînes est la Guava de Google. À partir de la version 23.1, il existe deux versions de Guava: android et jre . La saveur Android cible Android et Java 7, tandis que la saveur JRE va pour Java 8.

Si nous ne ciblons pas Android, nous pouvons simplement ajouter la saveur JRE à notre pom:

 com.google.guava guava 28.0-jre 

La classe Guavas Strings est fournie avec une méthode Strings.isNullOrEmpty :

Strings.isNullOrEmpty(string)

Il vérifie si une chaîne donnée est nulle ou vide, mais il ne vérifie pas les chaînes contenant uniquement des espaces .

8. Conclusion

Il existe plusieurs façons de vérifier si une chaîne est vide ou non. Souvent, nous voulons également vérifier si une chaîne est vide, ce qui signifie qu'elle se compose uniquement de caractères d'espacement.

Le moyen le plus pratique consiste à utiliser Apache Commons Lang, qui fournit des aides telles que StringUtils.isBlank . Si nous voulons nous en tenir à Java brut, nous pouvons utiliser une combinaison de String # trim avec String # isEmpty ou String # length . Pour la validation de bean, des expressions régulières peuvent être utilisées à la place.

Assurez-vous de consulter tous ces exemples sur GitHub.