Aktualizácie reťazcových rozhraní API v prostredí Java 12

1. Úvod

Java 12 pridal do API niekoľko užitočných API String trieda. V tomto tutoriáli preskúmame tieto nové API s príkladmi.

2. zarážka ()

The zarážka () metóda upravuje odsadenie každého riadku reťazca na základe argumentu, ktorý mu bol odovzdaný.

Kedy zarážka () sa volá na reťazci, vykonajú sa tieto akcie:

  1. Reťazec je koncepčne rozdelený do riadkov pomocou riadky (). riadky () je String API zavedené v Jave 11.
  2. Každý riadok sa potom upraví na základe int argument n prešiel na ňu a potom sa doplnil o riadok "\ n".
    1. Ak n > 0, potom n na začiatku každého riadku sa vkladajú medzery.
    2. Ak n<0, potom n znaky medzery sa odstránia od začiatku každého riadku. V prípade, že daný riadok neobsahuje dostatok medzery, odstránia sa všetky vedúce znaky medzery.
    3. Ak n == 0, potom riadok zostane nezmenený. Ukončovacie linky sú však stále normalizované.
  3. Výsledné riadky sú potom zreťazené a vrátené.

Napríklad:

@Test public void whenPositiveArgument_thenReturnIndentedString () {String multilineStr = "Toto je \ na viacriadkový \ nstring."; String outputStr = "Toto je \ n viacriadkový \ n reťazec. \ N"; Reťazec postIndent = multilineStr.indent (3); assertThat (postIndent, equalTo (outputStr)); }

Môžeme tiež zložiť zápor int aby sa zmenšilo odsadenie reťazca. Napríklad:

@Test public void whenNegativeArgument_thenReturnReducedIndentedString () {String multilineStr = "Toto je \ n viacriadkový \ n reťazec."; String outputStr = "Toto je \ n viacriadkový \ n reťazec. \ N"; Reťazec postIndent = multilineStr.indent (-2); assertThat (postIndent, equalTo (outputStr)); }

3. transformovať ()

Môžeme použiť funkciu na toto reťazec pomocou transformovať () metóda. Funkcia by mala očakávať jediný String argument a priniesť výsledok:

@Test public void whenTransformUsingLamda_thenReturnTransformedString () {String result = "ahoj" .transform (vstup -> vstup + "svet!"); assertThat (result, equalTo ("ahoj svet!")); }

Nie je potrebné, aby výstupom bol reťazec. Napríklad:

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

4. Záver

V tomto článku sme preskúmali nové String API v Jave 12. Ako obvykle, útržky kódu nájdete na GitHube.


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