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?
La bonne façon de vérifier si nul ou vide est comme ceci:
if(str != null && !str.isEmpty()) { /* do your stuffs here */ }
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
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
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
}
import com.google.common.base
if(!Strings.isNullOrEmpty(String str)) {
// Do your stuff here
}