Kontrola prázdnych alebo prázdnych reťazcov v Jave
1. Úvod
V tomto výučbe si ukážeme niekoľko spôsobov kontroly prázdnych alebo prázdnych reťazcov v Jave. Máme niekoľko prístupov v rodnom jazyku a niekoľko knižníc.
2. Prázdne vs.
Je samozrejme celkom bežné vedieť, kedy je reťazec prázdny alebo prázdny, ale uistime sa, že sme s našimi definíciami na rovnakej stránke.
Reťazec považujeme za prázdny ak je nulový alebo reťazec bez akýkoľvek dĺžka. Ak sa reťazec skladá iba z medzier, potom ho nazveme prázdne.
Pre Javu sú biele medzery znaky ako medzery, tabulátory a podobne. Pozri sa na Character.isWhitespace pre príklady.
3. Prázdne reťazce
3.1. S programom Java 6 a novšími
Ak sme aspoň na Jave 6, potom najjednoduchší spôsob, ako skontrolovať, či je prázdny reťazec je Reťazec # je Prázdny:
boolean isEmptyString (Reťazcový reťazec) {návratový reťazec.isEmpty (); }
Aby bola zaistená aj bezpečnosť voči nulovým hodnotám, musíme pridať ďalšiu kontrolu:
boolean isEmptyString (reťazec reťazca) string.isEmpty ();
3.2. S programom Java 5 a novším
Reťazec # je Prázdny bol predstavený s Java 6. Pre Javu 5 a nižšiu môžeme použiť Dĺžka reťazca namiesto toho.
boolean isEmptyString (String string) return string == null
V skutočnosti, Reťazec # je Prázdny je iba skratka do Dĺžka reťazca.
4. Prázdne struny
Oboje Reťazec # je Prázdny a Dĺžka reťazca možno použiť na kontrolu prázdny struny.
Ak chceme tiež zistiť prázdne reťazcov, dosiahneme to pomocou Reťazec # orezaný. To bude pred vykonaním kontroly odstráňte všetky predné a koncové medzery.
boolean isBlankString (reťazec) string.trim (). isEmpty ();
Byť presný, Reťazec # orezaný odstráni všetky úvodné a koncové znaky s kódom Unicode menším alebo rovným U + 0020.
A tiež si to pamätajte Stringsú nemenné, takže volajú obrezať v skutočnosti nezmení podkladový reťazec.
5. Validácia fazule
Ďalším spôsobom, ako skontrolovať prázdne strings je regulárny výraz. To sa hodí napríklad pri overovaní Java Bean:
@Pattern (regexp = "\ A (?! \ s * \ Z). +") Reťazec someString;
Daný regulárny výraz zaisťuje, že prázdne alebo prázdne reťazce nebudú overené.
6. S Apache Commons
Ak je v poriadku pridávať závislosti, môžeme použiť Apache Commons Lang. Toto má množstvo pomocníkov pre Javu.
Ak používame Maven, musíme pridať commons-lang3 závislosť na našom pom:
org.apache.commons commons-lang3
Toto nám okrem iného dáva StringUtils.
Táto trieda je vybavená metódami ako je prázdny, isBlank a tak ďalej:
StringUtils.isBlank (reťazec)
Toto volanie je to isté ako naše vlastné isBlankString metóda. Je bezpečný pre nulové hodnoty a tiež kontroluje medzery.
7. S Guavou
Ďalšou známou knižnicou, ktorá prináša určité pomocné programy súvisiace s reťazcami, je Guava spoločnosti Google. Počnúc verziou 23.1 existujú dve príchute Guavy: Android a jre. Príchuť Android je zameraná na Android a Java 7, zatiaľ čo príchuť JRE platí pre Java 8.
Ak sa nezameriavame na Android, môžeme do nášho pom pridať iba príchuť JRE:
com.google.guava guava 28.0-jre
Trieda Guavas Strings prichádza s metódou Strings.isNullOrEmpty:
Strings.isNullOrEmpty (reťazec)
Kontroluje, či je daný reťazec nulový alebo prázdny, ale nebude kontrolovať reťazce, ktoré obsahujú iba medzery.
8. Záver
Existuje niekoľko spôsobov, ako skontrolovať, či je reťazec prázdny alebo nie. Často tiež chceme skontrolovať, či je reťazec prázdny, čo znamená, že pozostáva iba z medzier.
Najpohodlnejším spôsobom je použitie Apache Commons Lang, ktorý poskytuje pomocníkov ako napr StringUtils.isBlank. Ak sa chceme držať jednoduchej Javy, môžeme použiť kombináciu Reťazec # orezaný buď Reťazec # je Prázdny alebo Dĺžka reťazca. Pre overenie Beanov možno namiesto nich použiť regulárne výrazy.
Nezabudnite si všetky tieto vzorky pozrieť na GitHub.