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.