Doplnky Java 11 String API

1. Úvod

Java 11 pridala niekoľko užitočných API k bežne používaným String trieda. V tomto tutoriáli budeme skúmať a používať tieto nové API.

2. opakovať ()

Ako už názov napovedá, opakovať () inštančná metóda opakuje obsah reťazca.

Vráti reťazec, ktorého hodnotou je opakované zreťazenie reťazca n krát, kde n sa odovzdáva ako parameter:

@Test public void whenRepeatStringTwice_thenGetStringTwice () {String output = "La" .repeat (2) + "Land"; is (output) .equals ("La La Land"); }

Navyše, opakovať () vráti prázdny reťazec, ak je reťazec prázdny alebo počet je nulový.

3. prúžok * ()

The pásik () metóda instance vracia reťazec s odstránenými všetkými medzičasmi medzery:

@Test public void whenStripString_thenReturnStringWithoutWhitespaces () {is ("\ n \ t ahoj \ u2005" .strip ()). Equals ("ahoj"); }

Java 11 tiež pridala metódy stripLeading () a stripTrailing (), ktoré spracúvajú predné a koncové biele medzery.

3.1. Rozdiel medzi pásik () a trim ()

prúžok * () určuje, či je znak prázdny alebo nie Character.isWhitespace (). Inými slovami, vie o prázdnych znakoch Unicode.

To sa líši od trim (), ktorý definuje medzeru ako akýkoľvek znak, ktorý je menší alebo rovný znaku medzery Unicode (U + 0020). Ak použijeme trim () v predchádzajúcom príklade dostaneme iný výsledok:

@Test public void whenTrimAdvanceString_thenReturnStringWithWhitespaces () {is ("\ n \ t ahoj \ u2005" .trim ()). Equals ("ahoj \ u2005"); }

Všimnite si ako trim () bol schopný orezať vedúci biely priestor, ale nezostrihal koncový biely priestor. To je preto, že trim () nevie o bielych znakoch Unicode, a preto nepovažuje „\ u2005 znak medzery.

4. isBlank ()

The isBlank () inštančná metóda sa vráti pravda ak je reťazec prázdny alebo obsahuje iba medzery. V opačnom prípade sa vráti nepravdivé:

@Test public void whenBlankString_thenReturnTrue () {assertTrue ("\ n \ t \ u2005" .isBlank ()); }

Podobne isBlank () metóda je si vedomá znakov medzery Unicode, rovnako ako pásik ().

5. riadky ()

The riadky () inštančná metóda vráti a Prúd riadkov extrahovaných z reťazca, oddelených ukončovačmi riadkov:

@Test public void whenMultilineString_thenReturnNonEmptyLineCount () {String multilineStr = "Toto je \ n \ n viacriadkový \ n reťazec."; long lineCount = multilineStr.lines () .filter (String :: isBlank) .count (); is (lineCount) .equals (3L); }

Zakončovač linky je jeden z nasledujúcich: „\ N“, alebo „\ R \ n“.

Stream obsahuje riadky v poradí, v akom sa vyskytujú. Z každého riadku je odstránený zakončovací riadok.

Táto metóda by mala byť uprednostnená pred split (), pretože poskytuje lepší výkon pri prerušovaní viacriadkového vstupu.

6. Záver

V tomto rýchlom článku sme preskúmali nové rozhrania String API v prostredí Java 11.

Útržky kódu nakoniec nájdete na GitHub.


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