Spracovanie reťazcov s Apache Commons Lang 3
1. Prehľad
Knižnica Apache Commons Lang 3 poskytuje podporu pre manipuláciu s hlavnými triedami rozhraní Java API. Táto podpora obsahuje metódy na manipuláciu s reťazcami, číslami, dátumami, súbežnosťou, zrkadlením objektov a ďalšie.
Okrem všeobecných úvodov do knižnice tento tutoriál demonštruje metódy StringUtils triedy, ktorá sa používa na manipuláciu s String inštancie.
2. Závislosť od Maven
Ak chcete používať knižnicu Commons Lang 3, jednoducho ju vytiahnite z centrálneho úložiska Maven pomocou nasledujúcej závislosti:
org.apache.commons commons-lang3 3.5
Najnovšiu verziu tejto knižnice nájdete tu.
3. StringUtils
The StringUtils trieda poskytuje metódy pre nulový-bezpečné operácie s reťazcami.
Mnoho metód tejto triedy má v triede definované zodpovedajúce metódy java.lang.String, ktoré nie sú nulový-bezpečný. Táto časť sa však namiesto toho zameria na niekoľko metód, ktoré nemajú ekvivalentné hodnoty v String trieda.
4. The obsahujeAkýkoľvek Metóda
The obsahujeAkýkoľvek metóda kontroluje, či je daná String obsahuje ľubovoľný znak z danej sady znakov. Túto sadu znakov je možné odovzdať vo forme a String alebo char varargs.
Nasledujúci fragment kódu demonštruje použitie dvoch preťažených chutí tejto metódy s overením výsledku:
Reťazcový reťazec = "baeldung.com"; boolean contains1 = StringUtils.containsAny (string, 'a', 'b', 'c'); boolean contains2 = StringUtils.containsAny (reťazec, 'x', 'y', 'z'); boolean contains3 = StringUtils.containsAny (string, "abc"); boolean contains4 = StringUtils.containsAny (reťazec, "xyz"); assertTrue (obsiahnuté1); assertFalse (obsiahnuté2); assertTrue (obsiahnuté3); assertFalse (obsiahnuté4);
5. containsIgnoreCase Metóda
The containsIgnoreCase metóda kontroluje, či je daná String obsahuje ďalší String necitlivým spôsobom.
Nasledujúci fragment kódu overuje, či Reťazec „baeldung.com“ zahŕňa „BAELDUNG“ keď sa ignorujú malé a veľké písmená:
Reťazcový reťazec = "baeldung.com"; boolean contains = StringUtils.containsIgnoreCase (reťazec, "BAELDUNG"); assertTrue (obsiahnuté);
6. countMatches Metóda
The counterMatches metóda počíta, koľkokrát sa znak alebo podreťazec objaví v danom texte String.
Nasleduje ukážka tejto metódy, ktorá to potvrdzuje „W“ sa objaví štyrikrát a „Com“ robí dvakrát v String„Vitajte na www.baeldung.com“:
Reťazcový reťazec = "vitajte na www.baeldung.com"; int charNum = StringUtils.countMatches (string, 'w'); int stringNum = StringUtils.countMatches (string, "com"); assertEquals (4, charNum); assertEquals (2, stringNum);
7. Metóda pripájania a prípravy
The appendIfMissing a appendIfMissingIgnoreCase metódy pripájajú príponu na koniec daného čísla String ak to ešte nekončí žiadnou z vložených prípon, a to spôsobom rozlišujúcim malé a veľké písmená.
Podobne prependIfMissing a prependIfMissingIgnoreCase metódy predponu pridávajú na začiatok daného čísla String ak nezačína žiadnou z vložených predpôn.
V nasledujúcom príklade je appendIfMissing a prependIfMissing na pridanie prípony a predpony k súboru sa používajú metódy Reťazec „baeldung.com“ bez toho, aby sa tieto prípony opakovali:
Reťazcový reťazec = "baeldung.com"; String stringWithSuffix = StringUtils.appendIfMissing (string, ".com"); String stringWithPrefix = StringUtils.prependIfMissing (reťazec, "www."); assertEquals ("baeldung.com", stringWithSuffix); assertEquals ("www.baeldung.com", stringWithPrefix);
8. Metóda zmeny prípadu
The String trieda už definuje metódy na prevod všetkých znakov a String na veľké alebo malé písmená. Táto pododdiel iba ilustruje použitie metód, ktoré menia prípad a String inými spôsobmi, vrátane swapCase, kapitalizovať a nekapitalizovať.
The swapCase metóda zamení prípad a Reťazec, zmena veľkých písmen na malé a malých písmen na veľké:
Reťazec originalString = "baeldung.COM"; String swappedString = StringUtils.swapCase (originalString); assertEquals ("BAELDUNG.com", swappedString);
The kapitalizovať metóda prevádza prvý znak daného String na veľké písmená, takže všetky zostávajúce znaky zostanú nezmenené:
Reťazec originalString = "baeldung"; String capitalizedString = StringUtils.capitalize (originalString); assertEquals ("Baeldung", capitalizedString);
The nekapitalizovať metóda prevádza prvý znak daného String na malé písmená a ponechať všetky zostávajúce znaky nezmenené:
Reťazec originalString = "Baeldung"; String uncapitalizedString = StringUtils.uncapitalize (originalString); assertEquals ("baeldung", uncapitalizedString);
9. Metóda reverzácie
The StringUtils trieda definuje dve metódy pre reverzáciu reťazcov: obrátiť a reverseDelimited. The obrátiť metóda preskupuje všetky znaky a String v opačnom poradí, zatiaľ čo reverseDelimited metóda zmení poradie skupín znakov oddelených zadaným oddeľovačom.
Nasledujúci fragment kódu obráti reťazec „Baeldung“ a potvrdzuje výsledok:
Reťazec originalString = "baeldung"; String reversedString = StringUtils.reverse (originalString); assertEquals ("gnudleab", reversedString);
Vďaka reverseDelimited metódou sú znaky obrátené v skupinách namiesto jednotlivo:
Reťazec originalString = "www.baeldung.com"; String reversedString = StringUtils.reverseDelimited (originalString, '.'); assertEquals ("com.baeldung.www", reversedString);
10. The točiť sa() Metóda
The točiť sa() metóda kruhovo posúva znaky a String množstvo pozícií. Fragment kódu nižšie presúva všetky znaky súboru Reťazec „baeldung“ štyri polohy vpravo a overí výsledok:
Reťazec originalString = "baeldung"; String rotatedString = StringUtils.rotate (originalString, 4); assertEquals ("dungbael", rotatedString);
11. The rozdiel Metóda
The rozdiel metóda porovnáva dva reťazce a vracia zvyšok druhého Reťazec, počnúc pozíciou, v ktorej je iná ako prvá. Nasledujúci fragment kódu porovnáva dva Struny: „Baeldung návody“ a „Kurzy Baeldung“ v oboch smeroch a potvrdzuje výsledok:
Návody k reťazcom = "Baeldung Návody"; Sláčikové kurzy = "Baeldungové kurzy"; String diff1 = StringUtils.difference (návody, kurzy); String diff2 = StringUtils.difference (kurzy, návody); assertEquals ("Kurzy", rozdiel1); assertEquals ("Návody", diff2);
12. Záver
Tento tutoriál predstavuje spracovanie reťazcov v Apache Commons Lang 3 a prechádza hlavnými API, ktoré môžeme použiť mimo StringUtils trieda knižnice.
Implementáciu všetkých vyššie uvedených príkladov a útržkov kódu nájdete ako vždy v projekte GitHub.