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.