Java 11 String API-tillegg

1. Introduksjon

Java 11 la til noen nyttige API-er til de ofte brukte String klasse. I denne opplæringen vil vi utforske og bruke disse nye API-ene.

2. gjenta()

Som navnet antyder, er gjenta() forekomstmetode gjentar strenginnholdet.

Den returnerer en streng hvis verdi er sammenkoblingen av strengen som gjentas n ganger, hvor n overføres som parameter:

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

I tillegg gjenta() returnerer en tom streng hvis strengen er tom eller antallet er null.

3. stripe * ()

De stripe () forekomst-metoden returnerer en streng med alle ledende og etterfølgende mellomrom fjernet:

@Test offentlig ugyldig nårStripString_thenReturnStringWithoutWhitespaces () {er ("\ n \ t hallo \ u2005" .strip ()). Er lik ("hallo"); }

Java 11 la også til metoder stripLeading () og stripTrailing (), som håndterer henholdsvis ledende og etterfølgende mellomrom.

3.1. Forskjell mellom stripe () og listverk()

stripe * () avgjør om tegnet er mellomrom eller ikke basert på Character.isWhitespace (). Med andre ord, den er klar over Unicode-mellomromstegn.

Dette er forskjellig fra listverk(), som definerer mellomrom som hvilket som helst tegn som er mindre enn eller lik Unicode-romtegnet (U + 0020). Hvis vi bruker listverk() i forrige eksempel vil vi få et annet resultat:

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

Legg merke til hvordan listverk() var i stand til å trimme det ledende hvite området, men det trimmet ikke det etterfølgende hvite området. Dette er fordi listverk() er ikke klar over Unicode-mellomromstegn og anser derfor ikke\ u2005 ′ et hvitt mellomrom.

4. isBlank ()

De isBlank () forekomst metode returnerer ekte hvis strengen er tom eller bare inneholder mellomrom. Ellers kommer den tilbake falsk:

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

Tilsvarende isBlank () metoden er klar over Unicode-mellomromstegn, akkurat som stripe ().

5. linjer ()

De linjer () forekomst metode returnerer a Strøm av linjer hentet fra strengen, atskilt med linjeterminatorer:

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

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

Strømmen inneholder linjer i den rekkefølgen de forekommer. Linjeterminatoren fjernes fra hver linje.

Denne metoden bør foretrekkes fremfor dele(), ettersom det gir bedre ytelse for å bryte flere linjer.

6. Konklusjon

I denne raske artikkelen utforsket vi de nye String API-ene i Java 11.

Til slutt kan du finne kodebiter på GitHub.


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