String API-oppdateringer i Java 12

1. Introduksjon

Java 12 la til et par nyttige APIer til String klasse. I denne veiledningen vil vi utforske disse nye API-ene med eksempler.

2. innrykk ()

De innrykk () metoden justerer innrykk for hver linje i strengen basert på argumentet som sendes til den.

Når innrykk () kalles på en streng, blir følgende handlinger tatt:

  1. Strengen er konseptuelt skilt i linjer ved hjelp av linjer (). linjer () er String API introdusert i Java 11.
  2. Hver linje justeres deretter basert på int argument n overført til den og deretter suffiks med en linjefôr “\ n”.
    1. Hvis n > 0, da n mellomrom settes inn i begynnelsen av hver linje.
    2. Hvis n<0, da opp tiln hvite mellomrom tegn fjernes fra begynnelsen av hver linje. Hvis en gitt linje ikke inneholder tilstrekkelig hvitt mellomrom, fjernes alle ledende hvite mellomromstegn.
    3. Hvis n == 0, så forblir linjen uendret. Linjeterminatorer er imidlertid fortsatt normaliserte.
  3. De resulterende linjene blir deretter sammenkoblet og returnert.

For eksempel:

@Test offentlig ugyldig nårPositivArgument_thenReturnIndentedString () {String multilineStr = "Dette er \ na multiline \ nstreng."; String outputStr = "Dette er \ n en multilinje \ n-streng. \ N"; Streng postIndent = multilineStr.indent (3); assertThat (postIndent, equalTo (outputStr)); }

Vi kan også passere et negativt int for å redusere innrykk av strengen. For eksempel:

@Test offentlig ugyldig nårNegativeArgument_thenReturnReducedIndentedString () {String multilineStr = "Dette er \ n en multilinje \ n-streng."; String outputStr = "Dette er \ n en multilinje \ n-streng. \ N"; Streng postIndent = multilineStr.indent (-2); assertThat (postIndent, equalTo (outputStr)); }

3. forvandle()

Vi kan bruke en funksjon på dette streng ved hjelp av forvandle() metode. Funksjonen bør forvente en singel String argumentere og produsere et resultat:

@Test offentlig ugyldig nårTransformUsingLamda_thenReturnTransformedString () {String result = "hallo" .transform (input -> input + "world!"); assertThat (resultat, equalTo ("hei verden!")); }

Det er ikke nødvendig at utdataene må være en streng. For eksempel:

@Test offentlig ugyldig nårTransformUsingParseInt_thenReturnInt () {int result = "42" .transform (Integer :: parseInt); assertThat (resultat, equalTo (42)); }

4. Konklusjon

I denne artikkelen utforsket vi det nye String APIer i Java 12. Som vanlig kan du finne kodebiter på GitHub.


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