String API-opdateringer i Java 12
1. Introduktion
Java 12 tilføjede et par nyttige API'er til Snor klasse. I denne vejledning vil vi udforske disse nye API'er med eksempler.
2. indrykning ()
Det indrykning () metoden justerer indrykningen af hver linje i strengen baseret på argumentet, der sendes til den.
Hvornår indrykning () kaldes på en streng, udføres følgende handlinger:
- Strengen er konceptuelt adskilt i linjer ved hjælp af linjer (). linjer () er String API introduceret i Java 11.
- Hver linje justeres derefter baseret på int argument n videregivet til det og derefter efterfulgt af en linjefeed “\ n”.
- Hvis n > 0, derefter n mellemrum indsættes i begyndelsen af hver linje.
- Hvis n<0, derefter op tiln hvide mellemrumstegn fjernes fra begyndelsen af hver linje. Hvis en given linje ikke indeholder tilstrækkeligt hvidt mellemrum, fjernes alle førende hvide mellemrumstegn.
- Hvis n == 0, så forbliver linjen uændret. Linjeterminatorer er dog stadig normaliserede.
- De resulterende linjer sammenkædes derefter og returneres.
For eksempel:
@Test offentligt ugyldigt nårPositiveArgument_thenReturnIndentedString () {String multilineStr = "Dette er \ na multiline \ nstreng."; String outputStr = "Dette er \ n en multiline \ n-streng. \ N"; Streng postIndent = multilineStr.indent (3); assertThat (postIndent, equalTo (outputStr)); }
Vi kan også videregive et negativt int for at reducere strengens indrykning. For eksempel:
@Test offentlig ugyldig nårNegativeArgument_thenReturnReducedIndentedString () {String multilineStr = "Dette er \ n en multiline \ n-streng."; String outputStr = "Dette er \ n en multiline \ n-streng. \ N"; Streng postIndent = multilineStr.indent (-2); assertThat (postIndent, equalTo (outputStr)); }
3. transformer ()
Vi kan anvende en funktion til det her streng ved hjælp af transformer () metode. Funktionen skal forvente en enkelt Snor argumentere og producere et resultat:
@Test offentlig ugyldig nårTransformUsingLamda_thenReturnTransformedString () {String result = "hej" .transform (input -> input + "verden!"); assertThat (resultat, equalTo ("hej verden!")); }
Det er ikke nødvendigt, at output skal være en streng. For eksempel:
@Test offentligt ugyldigt nårTransformUsingParseInt_thenReturnInt () {int result = "42" .transform (Integer :: parseInt); assertThat (resultat, equalTo (42)); }
4. Konklusion
I denne artikel udforskede vi det nye Snor API'er i Java 12. Som sædvanligt kan kodeuddrag findes på GitHub.