Dodaci Java 11 String API-ja

1. Uvod

Java 11 dodala je nekoliko korisnih API-ja uobičajenim Niz razred. U ovom uputstvu istražit ćemo i koristiti ove nove API-je.

2. ponoviti()

Kao što i samo ime govori, ponoviti() metoda instance ponavlja sadržaj niza.

Vraća niz čija je vrijednost spajanje niza koji se ponavlja n puta, gdje n se predaje kao parametar:

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

Dodatno, ponoviti() vraća prazan niz ako je niz prazan ili je broj nula.

3. traka*()

The traka() metoda instance vraća niz sa svim uklonjenim razmacima na početku i na kraju:

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

Java 11 također je dodala metode stripLeading () i stripTrailing (), koji obrađuju vodeće i prateće razmake.

3.1. Razlika između traka() i obrezati ()

traka*() određuje je li znak razmak ili ne Character.isWhitespace (). Drugim riječima, svjestan je Unicode praznih znakova.

Ovo se razlikuje od obrezati (), koji definira prostor kao bilo koji znak koji je manji ili jednak Unicode znaku prostora (U + 0020). Ako koristimo obrezati () u prethodnom primjeru dobit ćemo drugačiji rezultat:

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

Primijetite kako obrezati () je uspio obrezati vodeći razmak, ali nije usjekao zaostali razmak. Ovo je zbog obrezati () nije svjestan Unicode praznih znakova i stoga ne uzima u obzir "\ u2005 ′ znak razmaka.

4. isBlank ()

The isBlank () metoda instance vraća pravi ako je niz prazan ili sadrži samo razmak. U suprotnom, vraća se lažno:

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

Slično tome, isBlank () metoda svjesna je praznih znakova Unicodea, baš kao i traka().

5. linije ()

The linije () metoda instance vraća a Stream redaka izvučenih iz niza, odvojenih terminatorima linija:

@Test public void whenMultilineString_thenReturnNonEmptyLineCount () {String multilineStr = "Ovo je \ n \ n višeredni \ n niz."; long lineCount = multilineStr.lines () .filter (String :: isBlank) .count (); je (lineCount) .equals (3L); }

Terminator linije je jedno od sljedećeg: "\ N","\ R", ili "\ R \ n".

Tok sadrži crte redoslijedom kojim se pojavljuju. Završnik linije uklanja se sa svake linije.

Ovoj metodi treba dati prednost podjela(), jer pruža bolje performanse za razbijanje višerednih ulaza.

6. Zaključak

U ovom smo kratkom članku istražili nove String API-je u Javi 11.

Konačno, isječke koda možete pronaći na GitHubu.


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