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:
- Strengen er konseptuelt skilt i linjer ved hjelp av linjer (). linjer () er String API introdusert i Java 11.
- Hver linje justeres deretter basert på int argument n overført til den og deretter suffiks med en linjefôr “\ n”.
- Hvis n > 0, da n mellomrom settes inn i begynnelsen av hver linje.
- 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.
- Hvis n == 0, så forblir linjen uendret. Linjeterminatorer er imidlertid fortsatt normaliserte.
- 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.