Ažuriranja API-ja niza u Javi 12

1. Uvod

Java 12 dodala je nekoliko korisnih API-ja u Niz razred. U ovom uputstvu istražit ćemo te nove API-je s primjerima.

2. uvlaka ()

The uvlaka () metoda prilagođava uvlačenje svakog retka niza na temelju argumenta koji mu je proslijeđen.

Kada uvlaka () poziva se na niz, poduzimaju se sljedeće radnje:

  1. Niz je konceptualno odvojen u crte pomoću linije (). linije () je String API uveden u Javi 11.
  2. Zatim se svaki redak podešava na temelju int argument n prebačen na njega, a zatim sufiksiran s dodavanjem retka "\ n".
    1. Ako n > 0, onda n razmaci su umetnuti na početak svakog retka.
    2. Ako n<0, onda don razmaci se uklanjaju s početka svakog retka. U slučaju da zadani redak nema dovoljno razmaka, uklanjaju se svi vodeći razmaci.
    3. Ako n == 0, tada linija ostaje nepromijenjena. Međutim, linijski završnici su i dalje normalizirani.
  3. Dobiveni redovi se zatim spajaju i vraćaju.

Na primjer:

@Test public void whenPositiveArgument_thenReturnIndentedString () {String multilineStr = "Ovo je \ na višeredni \ nstring."; String outputStr = "Ovo je \ n višeredni \ n niz. \ N"; Niz postIndent = multilineStr.indent (3); assertThat (postIndent, jednakTo (outputStr)); }

Možemo proći i negativan int za smanjenje uvlačenja niza. Na primjer:

@Test public void whenNegativeArgument_thenReturnReducedIndentedString () {String multilineStr = "Ovo je \ n višeredni \ n niz."; String outputStr = "Ovo je \ n višeredni \ n niz. \ N"; Niz postIndent = multilineStr.indent (-2); assertThat (postIndent, jednakTo (outputStr)); }

3. transformirati()

Možemo primijeniti funkciju na ovaj niz pomoću transformirati() metoda. Funkcija treba očekivati ​​jednu Niz argument i proizvesti rezultat:

@Test javna praznina whenTransformUsingLamda_thenReturnTransformedString () {String rezultat = "hello" .transform (input -> input + "world!"); assertThat (rezultat, jednakTo ("zdravo svijetu!")); }

Nije potrebno da izlaz mora biti niz. Na primjer:

@Test public void whenTransformUsingParseInt_thenReturnInt () {int result = "42" .transform (Integer :: parseInt); assertThat (rezultat, jednakTo (42)); }

4. Zaključak

U ovom smo članku istražili novo Niz API-ji u Javi 12. Kao i obično, isječke koda možete pronaći na GitHub-u.