Java 11 karakterlánc API-kiegészítések
1. Bemutatkozás
A Java 11 kevés hasznos API-t adott hozzá a gyakran használtakhoz Húr osztály. Ebben az oktatóanyagban megvizsgáljuk és felhasználjuk ezeket az új API-kat.
2. ismétlés()
Ahogy a neve is mutatja, a ismétlés() példány metódus megismétli a karakterlánc tartalmát.
Olyan karakterláncot ad vissza, amelynek értéke az ismételt karakterlánc összefűzése n alkalommal, hol n paraméterként kerül átadásra:
@Test public void whenRepeatStringTwice_thenGetStringTwice () {String output = "La" .repeat (2) + "Land"; is (output) .egyenlő ("La La Land"); }
Ezenkívül ismétlés() üres karakterláncot ad vissza, ha a karakterlánc üres vagy a szám nulla.
3. szalag*()
A szalag() Az instance metódus egy karakterláncot ad vissza, az összes vezető és záró szóközt eltávolítva:
@Test public void whenStripString_thenReturnStringWithoutWhitespaces () {is ("\ n \ t hello \ u2005" .strip ()). Egyenlő ("hello"); }
A Java 11 szintén hozzáadott módszereket stripLeading () és stripTrailing (), amelyek kezelik a vezető és a hátsó szóközöket.
3.1. A különbség köztük szalag() és trim ()
szalag*() alapján határozza meg, hogy a karakter üres-e vagy sem Character.isWhitespace (). Más szavakkal, tisztában van az Unicode szóközökkel.
Ez különbözik a trim (), amely a teret minden olyan karakterként definiálja, amely kisebb vagy egyenlő az Unicode szóköz karakterrel (U + 0020). Ha használjuk trim () az előző példában más eredményt kapunk:
@Test public void whenTrimAdvanceString_thenReturnStringWithWhitespaces () {is ("\ n \ t hello \ u2005" .trim ()). Egyenlő ("hello \ u2005"); }
Figyelje meg, hogyan trim () képes volt levágni a vezető fehér helyet, de nem vágta le a hátsó fehér helyet. Ez azért van, mert trim () nem ismeri az Unicode szóköz karaktereit, és ezért nem veszi figyelembe\ u2005 ′ fehér szóköz karakter.
4. isBlank ()
A isBlank () példány metódus visszatér igaz ha a karakterlánc üres vagy csak szóközt tartalmaz. Ellenkező esetben visszatér hamis:
@Test public void whenBlankString_thenReturnTrue () {assertTrue ("\ n \ t \ u2005" .isBlank ()); }
Hasonlóképpen a isBlank () A módszer ismeri az Unicode szóköz karaktereket, csakúgy, mint szalag().
5. vonalak ()
A vonalak () példány metódus a Folyam a húrból kivont vonalak sorválasztókkal elválasztva:
@Test public void whenMultilineString_thenReturnNonEmptyLineCount () {String multilineStr = "Ez \ n \ n többsoros \ n karakterlánc."; long lineCount = multilineStr.lines () .filter (String :: isBlank) .count (); is (lineCount) .egyenlő (3L); }
A vonalzáró a következők egyike: „\ N”,„\ R”, vagy „\ R \ n”.
A folyam sorokat tartalmaz abban a sorrendben, ahogyan előfordulnak. A vonalvégzőt minden vonalról eltávolítják.
Ezt a módszert kell előnyben részesíteni hasított(), mivel jobb teljesítményt nyújt a többsoros bemenet megszakításához.
6. Következtetés
Ebben a rövid cikkben az új String API-kat tártuk fel a Java 11-ben.
Végül a kódrészletek megtalálhatók a GitHubon.