Kontrollerer for tomme eller tomme strenge i Java

1. Introduktion

I denne vejledning gennemgår vi nogle måder at kontrollere, om der er tomme eller tomme strenge i Java. Vi har nogle modersmålstilgange såvel som et par biblioteker.

2. Tom vs. blank

Det er selvfølgelig ret almindeligt at vide, hvornår en streng er tom eller tom, men lad os sørge for, at vi er på samme side med vores definitioner.

Vi anser en streng for at være tom hvis det er enten nul eller en streng uden nogen længde. Hvis en streng kun består af kun mellemrum, kalder vi det blank.

For Java er hvide mellemrum tegn som mellemrum, faner og så videre. Se på Tegn er hvidt for eksempler.

3. Tomme strenge

3.1. Med Java 6 og derover

Hvis vi i det mindste er på Java 6, så er den enkleste måde at kontrollere, om der er en tom streng er Streng # er tom:

boolsk isEmptyString (strengstreng) {return string.isEmpty (); }

For at gøre det også nul-sikkert, skal vi tilføje en ekstra check:

boolsk isEmptyString (strengstreng) streng.isEmpty (); 

3.2. Med Java 5 og derunder

Streng # er tom blev introduceret med Java 6. For Java 5 og derunder kan vi bruge Streng # længde i stedet.

boolsk isEmptyString (strengstreng) returstreng == null 

Faktisk, Streng # er tom er bare en genvej til Streng # længde.

4. Blanke strenge

Begge Streng # er tom og Streng # længde kan bruges til at kontrollere tom strenge.

Hvis vi også vil opdage blank strenge, kan vi opnå dette ved hjælp af Streng # trim. Det vil fjern alle ledende og bageste mellemrum, før du udfører kontrollen.

boolsk isBlankString (strengstreng) streng.trim (). erEmpty (); 

For at være præcis, Streng # trim fjerner alle ledende og efterfølgende tegn med en Unicode-kode, der er mindre end eller lig med U + 0020.

Og husk det også Snors er uforanderlige, så kald trimme ændrer faktisk ikke den underliggende streng.

5. Validering af bønner

En anden måde at kontrollere blank strenge er regulære udtryk. Dette er praktisk for eksempel med Java Bean Validation:

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

Det givne regulære udtryk sikrer, at tomme eller tomme strenge ikke valideres.

6. Med Apache Commons

Hvis det er ok at tilføje afhængigheder, kan vi bruge Apache Commons Lang. Dette har en række hjælpere til Java.

Hvis vi bruger Maven, skal vi tilføje commons-lang3 afhængighed af vores pom:

 org.apache.commons commons-lang3 

Dette giver os blandt andet StringUtils.

Denne klasse kommer med metoder som er tom, er tom og så videre:

StringUtils.isBlank (streng)

Dette kald gør det samme som vores eget isBlankString metode. Det er nul-sikkert og kontrollerer også for mellemrum.

7. Med Guava

Et andet velkendt bibliotek, der bringer visse strengrelaterede værktøjer, er Googles Guava. Fra og med version 23.1 er der to varianter af Guava: Android og jre. Android-smagen er målrettet mod Android og Java 7, mens JRE-smagen gælder for Java 8.

Hvis vi ikke målretter mod Android, kan vi bare tilføje JRE-smagen til vores pom:

 com.google.guava guava 28.0-jre 

Guavas Strings klasse kommer med en metode Strings.isNullOrEmpty:

Strings.isNullOrEmpty (streng)

Det kontrollerer, om en given streng er nul eller tom, men det vil ikke kontrollere, om der kun er plads til hvide mellemrum.

8. Konklusion

Der er flere måder at kontrollere, om en streng er tom eller ej. Ofte vil vi også kontrollere, om en streng er tom, hvilket betyder at den kun består af tegn i mellemrum.

Den mest bekvemme måde er at bruge Apache Commons Lang, som giver hjælpere som f.eks StringUtils.isBlank. Hvis vi vil holde os til almindelig Java, kan vi bruge en kombination af Streng # trim med begge Streng # er tom eller Streng # længde. Til bønnevalidering kan der anvendes regulære udtryk i stedet.

Sørg for at tjekke alle disse prøver over på GitHub.