web-dev-qa-db-fra.com

Vérifier si une chaîne est vide ou nulle dans Java

J'analyse des données HTML. La String peut être null ou vide, lorsque le mot à analyser ne correspond pas.

Donc, je l'ai écrit comme ça:

if(string.equals(null) || string.equals("")){
    Log.d("iftrue", "seem to be true");
}else{
    Log.d("iffalse", "seem to be false");
}

Lorsque je supprime String.equals(""), il ne fonctionne pas correctement.

Je pensais que String.equals("") n'était pas correct.

Comment puis-je vérifier si un String est vide?

299
user2027811

La bonne façon de vérifier si nul ou vide est comme ceci:

if(str != null && !str.isEmpty()) { /* do your stuffs here */ }
430
Pradeep Simha

Vous pouvez utiliser Apache Commons StringUtils.isEmpty(str) , qui vérifie les chaînes vides et gère null de façon élégante.

Exemple:

System.out.println(StringUtils.isEmpty("")); // true
System.out.println(StringUtils.isEmpty(null)); // true

Google Guava fournit également une méthode similaire, probablement plus facile à lire: Strings.isNullOrEmpty(str) .

Exemple:

System.out.println(Strings.isNullOrEmpty("")); // true
System.out.println(Strings.isNullOrEmpty(null)); // true
295
Makoto

Vous pouvez utiliser Apache commons-lang

StringUtils.isEmpty(String str) - Vérifie si une chaîne est vide ("") ou nulle.

ou

StringUtils.isBlank(String str) - Vérifie si une chaîne est un espace, vide ("") ou null.

ce dernier considère une chaîne composée d'espaces ou de caractères spéciaux, par exemple "" également vide. Voir API Java.lang.Character.isWhitespace

57
Evgeniy Dorofeev

De cette façon, vous vérifiez si la chaîne n'est ni nulle ni vide, en tenant également compte des espaces vides:

boolean isEmpty = str == null || str.trim().length() == 0;
if (isEmpty) {
    // handle the validation
}
24
Alécio Carvalho

import com.google.common.base

if(!Strings.isNullOrEmpty(String str)) {
   // Do your stuff here 
}
17
hari