Java 11-streng API-tilføjelser

1. Introduktion

Java 11 tilføjede få nyttige API'er til de almindeligt anvendte Snor klasse. I denne vejledning vil vi udforske og bruge disse nye API'er.

2. gentage()

Som navnet antyder, er gentage() eksempel-metode gentager strengindholdet.

Det returnerer en streng, hvis værdi er sammenkædningen af ​​den gentagne streng n gange, hvor n videregives som en parameter:

@Test offentlig ugyldig nårRepeatStringTwice_thenGetStringTwice () {String output = "La". Gentag (2) + "Land"; er (output) .equals ("La La Land"); }

Derudover gentage() returnerer en tom streng, hvis strengen er tom, eller antallet er nul.

3. strip * ()

Det strip () eksempel-metode returnerer en streng med alle ledende og efterfølgende hvide mellemrum fjernet:

@Test offentligt ugyldigt nårStripString_thenReturnStringWithoutWhitespaces () {er ("\ n \ t hej \ u2005" .strip ()). Er lig med ("hej"); }

Java 11 tilføjede også metoder stripLeading () og stripTrailing (), der håndterer henholdsvis ledende og bageste mellemrum.

3.1. Forskel mellem strip () og trimme()

strip * () bestemmer, om tegnet er mellemrum eller ikke baseret på Tegn.isHvidrum (). Med andre ord, den er opmærksom på Unicode-blanktegn.

Dette er forskelligt fra trimme(), som definerer mellemrum som ethvert tegn, der er mindre end eller lig med Unicode-rumtegnet (U + 0020). Hvis vi bruger trimme() i det foregående eksempel får vi et andet resultat:

@Test offentlig ugyldig nårTrimAdvanceString_thenReturnStringWithWhitespaces () {er ("\ n \ t hej \ u2005" .trim ()). Er lig med ("hej \ u2005"); }

Læg mærke til hvordan trimme() var i stand til at trimme det førende hvide område, men det trimmede ikke det bageste hvide rum. Dette er fordi trimme() er ikke opmærksom på Unicode-blanktegn og betragter derfor ikke '\ u2005 ' en blank plads.

4. isBlank ()

Det isBlank () eksempel metode returnerer rigtigt hvis strengen er tom eller kun indeholder mellemrum. Ellers vender den tilbage falsk:

@Test offentlig ugyldig nårBlankString_thenReturnTrue () {assertTrue ("\ n \ t \ u2005" .isBlank ()); }

Tilsvarende er isBlank () metode er opmærksom på Unicode-tegn i mellemrum, ligesom strip ().

5. linjer ()

Det linjer () eksempel metode returnerer a Strøm af linjer ekstraheret fra strengen, adskilt af linjeterminatorer:

@Test offentlig ugyldigt nårMultilineString_thenReturnNonEmptyLineCount () {String multilineStr = "Dette er \ n \ n en multiline \ n streng."; long lineCount = multilineStr.lines () .filter (String :: isBlank) .count (); er (lineCount) .equals (3L); }

En linjeterminator er en af ​​følgende: “\ N”,“\ R”, eller “\ R \ n”.

Strømmen indeholder linjer i den rækkefølge, de forekommer i. Linjeterminatoren fjernes fra hver linje.

Denne metode skal foretrækkes frem for dele(), da det giver bedre ydeevne til at bryde multi-line input.

6. Konklusion

I denne hurtige artikel udforskede vi de nye String API'er i Java 11.

Endelig kan kodestykker findes på GitHub.


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