Verifica se una stringa è vuota o nullo in Java

Sto analizzando i dati HTML. La String può essere null o vuota, quando la parola da analizzare non corrisponde.

Quindi, l’ho scritto così:

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

Quando elimino String.equals("") , non funziona correttamente.

Pensavo che String.equals("") non fosse corretto.

Come posso controllare per una String vuota?

Il modo corretto per verificare null o empty è come questo:

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

È ansible utilizzare Apache Commons StringUtils.isEmpty(str) , che verifica la presenza di stringhe vuote e gestisce con garbo null .

Esempio:

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

Google Guava fornisce anche un metodo simile, probabilmente più semplice da leggere: Strings.isNullOrEmpty(str) .

Esempio:

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

Puoi usare Apache commons-lang

StringUtils.isEmpty(String str) – Verifica se una stringa è vuota (“”) o nulla.

o

StringUtils.isBlank(String str) – Verifica se una stringa è uno spazio vuoto, vuoto (“”) o null.

quest’ultimo considera una stringa che consiste di spazi o caratteri speciali, ad esempio “” anche vuota. Vedi API java.lang.Character.isWhitespace

In questo modo si controlla se la stringa non è nullo e non vuota, considerando anche gli spazi vuoti:

 boolean isEmpty = str == null || str.trim().length() == 0; if (isEmpty) { // handle the validation } 
 if(!Strings.isNullOrEmpty(String str)) { // Do your stuff here }