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:
- Reťazec je koncepčne rozdelený do riadkov pomocou riadky (). riadky () je String API zavedené v Jave 11.
- Každý riadok sa potom upraví na základe int argument n prešiel na ňu a potom sa doplnil o riadok "\ n".
- Ak n > 0, potom n na začiatku každého riadku sa vkladajú medzery.
- Ak n<0, potom až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.
- Ak n == 0, potom riadok zostane nezmenený. Ukončovacie linky sú však stále normalizované.
- 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.