Controllo di stringhe vuote o vuote in Java

1. Introduzione

In questo tutorial, esamineremo alcuni modi per verificare la presenza di stringhe vuote o vuote in Java. Abbiamo alcuni approcci alla lingua madre e un paio di librerie.

2. Vuoto vs. vuoto

Ovviamente è abbastanza comune sapere quando una stringa è vuota o vuota, ma assicuriamoci di essere sulla stessa pagina con le nostre definizioni.

Consideriamo una stringa vuota se è nulla o una stringa senza alcuna lunghezza. Se una stringa è composta solo da spazi bianchi, la chiamiamo vuota .

Per Java, gli spazi bianchi sono caratteri come spazi, tabulazioni e così via. Dai un'occhiata a Character.isWhitespace per degli esempi.

3. Stringhe vuote

3.1. Con Java 6 e versioni successive

Se siamo almeno su Java 6, il modo più semplice per verificare la presenza di una stringa vuota è String # isEmpty :

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

Per renderlo anche null-safe, dobbiamo aggiungere un ulteriore controllo:

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

3.2. Con Java 5 e versioni precedenti

La stringa # isEmpty è stata introdotta con Java 6. Per Java 5 e versioni precedenti , è possibile utilizzare invece String # length .

boolean isEmptyString(String string)  return string == null 

In effetti, String # isEmpty è solo una scorciatoia per String # length .

4. Stringhe vuote

È possibile utilizzare sia String # isEmpty che String # length per verificare la presenza di stringhe vuote .

Se vogliamo rilevare anche stringhe vuote , possiamo ottenere ciò con l'aiuto di String # trim . Sarà rimuovere tutti gli spazi bianchi iniziali e finali prima di eseguire il controllo.

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

Per essere precisi, String # trim rimuoverà tutti i caratteri iniziali e finali con un codice Unicode inferiore o uguale a U + 0020.

E ricorda anche che le String sono immutabili, quindi chiamare trim non cambierà effettivamente la stringa sottostante.

5. Bean Validation

Un altro modo per verificare la presenza di stringhe vuote sono le espressioni regolari. Questo è utile ad esempio con Java Bean Validation:

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

L'espressione regolare data garantisce che le stringhe vuote o vuote non verranno convalidate.

6. Con Apache Commons

Se va bene aggiungere dipendenze, possiamo usare Apache Commons Lang. Questo ha una serie di helper per Java.

Se usiamo Maven, dobbiamo aggiungere la dipendenza commons-lang3 al nostro pom:

 org.apache.commons commons-lang3 

Tra le altre cose, questo ci dà StringUtils .

Questa classe include metodi come isEmpty , isBlank e così via:

StringUtils.isBlank(string)

Questa chiamata fa la stessa cosa del nostro metodo isBlankString . È null-safe e controlla anche gli spazi vuoti.

7. Con Guava

Un'altra libreria ben nota che porta alcune utilità relative alle stringhe è Guava di Google. A partire dalla versione 23.1, ci sono due versioni di Guava: android e jre . La versione Android è destinata ad Android e Java 7, mentre la versione JRE va a Java 8.

Se non stiamo prendendo di mira Android, possiamo semplicemente aggiungere il sapore JRE al nostro pom:

 com.google.guava guava 28.0-jre 

La classe Guavas Strings viene fornita con un metodo Strings.isNullOrEmpty :

Strings.isNullOrEmpty(string)

Controlla se una determinata stringa è nulla o vuota, ma non controlla le stringhe di soli spazi .

8. Conclusione

Esistono diversi modi per verificare se una stringa è vuota o meno. Spesso, vogliamo anche controllare se una stringa è vuota, il che significa che è composta solo da spazi vuoti.

Il modo più conveniente è usare Apache Commons Lang, che fornisce helper come StringUtils.isBlank . Se vogliamo attenerci al semplice Java, possiamo usare una combinazione di String # trim con String # isEmpty o String # length . Per Bean Validation, è possibile utilizzare invece espressioni regolari.

Assicurati di controllare tutti questi esempi su GitHub.