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:

  1. Strengen er konceptuelt adskilt i linjer ved hjælp af linjer (). linjer () er String API introduceret i Java 11.
  2. Hver linje justeres derefter baseret på int argument n videregivet til det og derefter efterfulgt af en linjefeed “\ n”.
    1. Hvis n > 0, derefter n mellemrum indsættes i begyndelsen af ​​hver linje.
    2. 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.
    3. Hvis n == 0, så forbliver linjen uændret. Linjeterminatorer er dog stadig normaliserede.
  3. 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.