Karakterlánc-feldolgozás az Apache Commons Lang 3-tal

1. Áttekintés

Az Apache Commons Lang 3 könyvtár támogatja a Java API-k alaposztályainak manipulálását. Ez a támogatás magában foglalja a karakterláncok, számok, dátumok, egyidejűség, objektumvisszaverés és egyebek kezelésének módszereit.

A könyvtár általános bemutatása mellett a bemutató bemutatja a StringUtils osztály, amelyet a Húr példányok.

2. Maven-függőség

A Commons Lang 3 könyvtár használatához húzza ki a központi Maven-tárból a következő függőség használatával:

 org.apache.commons commons-lang3 3.5 

A könyvtár legújabb verzióját itt találja.

3. StringUtils

A StringUtils osztály módszereket nyújt arra nulla- biztonságos műveletek húrokon.

Ebbe az osztályba számos módszer megfelelő osztályt határoz meg java.lang.Stringamelyek nem nulla-biztonságos. Ez a szakasz azonban ehelyett több olyan módszerre fog összpontosítani, amelyeknek nincs megfelelője a Húr osztály.

4. A tartalmazAny Módszer

A tartalmazAny módszer ellenőrzi, hogy adott-e Húr az adott karakterkészlet bármelyik karakterét tartalmazza. Ez a karakterkészlet átadható a formában Húr vagy char varargs.

A következő kódrészlet ennek a módszernek a két túlterhelt ízének használatát mutatja be eredményellenőrzéssel:

Karaktersorozat = "baeldung.com"; logikai tartalma1 = StringUtils.containsAny (string, 'a', 'b', 'c'); logikai tartalmú2 = StringUtils.containsAny (string, 'x', 'y', 'z'); logikai tartalmú3 = StringUtils.containsAny (string, "abc"); logikai tartalmú4 = StringUtils.containsAny (string, "xyz"); assertTrue (tartalmazza1); assertFalse (benne2); assertTrue (tartalmazza3); assertFalse (benne4);

5. A tartalmazzaIgnoreCase Módszer

A tartalmazzaIgnoreCase módszer ellenőrzi, hogy adott-e Húr tartalmaz egy másikat Húr esetben érzéketlen módon.

A következő kódrészlet ellenőrzi, hogy a „Baeldung.com” karakterlánc tartalmaz „BAELDUNG” amikor a kis- és nagybetűket figyelmen kívül hagyják:

Karaktersorozat = "baeldung.com"; logikai érték = StringUtils.containsIgnoreCase (string, "BAELDUNG"); assertTrue (tartalmazza);

6. A countMatches Módszer

A counterMatches A metódus megszámolja, hogy egy adott karakterben hány karakter vagy részsor jelenik meg Húr.

Az alábbiakban bemutatjuk ezt a módszert, megerősítve ezt „W” négyszer jelenik meg és „Com” kétszer végez a Húr„Üdvözöljük a www.baeldung.com oldalon”:

String string = "Üdvözöljük a www.baeldung.com oldalon"; int charNum = StringUtils.countMatches (karakterlánc, 'w'); int stringNum = StringUtils.countMatches (karakterlánc, "com"); assertEquals (4, charNum); assertEquals (2, stringNum);

7. Hozzáfűzési és előkészítési módszer

A appendIfMissing és appendIfMissingIgnoreCase A metódusok utótagot fűznek egy adott végéhez Húr ha még nem ér véget a beillesztett utótagok egyikével sem kis- és nagybetű érzékeny módon.

Hasonlóképpen a prependIfMissing és prependIfMissingIgnoreCase A metódusok előtagot adnak az adott szó elejéhez Húr ha nem a beírt előtagok egyikével kezdődik.

A következő példában a appendIfMissing és prependIfMissing módszereket használunk az utótag és az előtag hozzáadásához a „Baeldung.com” karakterlánc anélkül, hogy ezeket a toldalékokat megismételnék:

Karaktersorozat = "baeldung.com"; String stringWithSuffix = StringUtils.appendIfMissing (karakterlánc, ".com"); String stringWithPrefix = StringUtils.prependIfMissing (karakterlánc, "www."); assertEquals ("baeldung.com", stringWithSuffix); assertEquals ("www.baeldung.com", stringWithPrefix);

8. Esetváltoztatási módszer

A Húr osztály már meghatározza az a karakterek konvertálásának módszereit Húr nagybetűkre vagy kisbetűkre. Ez az alfejezet csak az a betűváltoztató módszerek használatát szemlélteti Húr más módon, beleértve swapCase, nagybetűs és tőkét tenni.

A swapCase módszer felcseréli az a esetét Húr, nagybetűs kisbetűs és kisbetűs nagybetűsre váltás:

String originalString = "baeldung.COM"; String swappedString = StringUtils.swapCase (originalString); assertEquals ("BAELDUNG.com", swappedString);

A nagybetűs metódus konvertálja az adott karakter első karakterét Húr nagybetűkre, a többi karakter változatlanul hagyva:

String originalString = "baeldung"; String capitalizedString = StringUtils.capitalize (originalString); assertEquals ("Baeldung", nagybetűsString);

A tőkét tenni metódus átalakítja az adott karakter első karakterét Húr kisbetűvé, az összes többi karakter változatlanul hagyva:

String originalString = "Baeldung"; String uncapitalizedString = StringUtils.uncapitalize (originalString); assertEquals ("baeldung", capitalizedString);

9. Fordított módszer

A StringUtils osztály két módszert határoz meg a karakterláncok megfordítására: fordított és reverseDelimited. A fordított metódus átrendezi az a összes karakterét Húr ellentétes sorrendben, míg a reverseDelimited A módszer átrendezi a karaktercsoportokat, elválasztva egy meghatározott elválasztóval.

A következő kódrész megfordítja a karakterláncot „Baeldung” és érvényesíti az eredményt:

String originalString = "baeldung"; String reversedString = StringUtils.reverse (originalString); assertEquals ("gnudleab", fordítottString);

A ... val reverseDelimited módszer szerint a karakterek csoportokban kerülnek megfordításra, külön-külön:

String originalString = "www.baeldung.com"; String reversedString = StringUtils.reverseDelimited (originalString, '.'); assertEquals ("com.baeldung.www", fordítottString);

10. Az forog() Módszer

A forog() módszer körkörösen eltolja az a karaktereit Húr számos pozíciót. Az alábbi kódrészlet a Húr „baeldung” négy pozíció jobbra és igazolja az eredményt:

String originalString = "baeldung"; String rotatedString = StringUtils.rotate (originalString, 4); assertEquals ("dungbael", rotatedString);

11. Az különbség Módszer

A különbség metódus két karakterláncot hasonlít össze, a második maradékát adja vissza Húr, abból a helyzetből indulva, ahol eltér az elsőtől. Az alábbi kódrészlet kettőt hasonlít össze Húrok: „Baeldung oktatóanyagok” és „Baeldung tanfolyamok” mindkét irányban, és érvényesíti az eredményt:

Karakterláncok = "Baeldung oktatóanyagok"; Vonós tanfolyamok = "Baeldung tanfolyamok"; String diff1 = StringUtils.difference (oktatóanyagok, tanfolyamok); String diff2 = StringUtils.difference (tanfolyamok, oktatóanyagok); assertEquals ("Tanfolyamok", diff1); assertEquals ("oktatóanyagok", diff2);

12. Következtetés

Ez az oktatóanyag bemutatja a karakterláncok feldolgozását az Apache Commons Lang 3-ban, és áttekinti a fő API-kat, amelyeket az StringUtils könyvtári osztály.

Mint mindig, a fenti példák és kódrészletek megvalósítása megtalálható a GitHub projektben.