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.


$config[zx-auto] not found$config[zx-overlay] not found