Karakterlánc API-frissítések a Java 12-ben

1. Bemutatkozás

A Java 12 néhány hasznos API-t adott hozzá a Húr osztály. Ebben az oktatóanyagban ezeket az új API-kat vizsgáljuk meg példákkal.

2. francia bekezdés ()

A francia bekezdés () A metódus a karakterlánc minden sorának behúzását a neki átadott argumentum alapján állítja be.

Mikor francia bekezdés () karakterláncra hívják, a következő műveleteket hajtják végre:

  1. A húr fogalmilag sorokra van elválasztva a vonalak (). vonalak () a Java 11-ben bevezetett String API.
  2. Ezután minden sort beállítunk a int érv n átadta neki, majd utótaggal látta el a „\ n” sort.
    1. Ha n > 0, akkor n szóközök kerülnek beillesztésre az egyes sorok elejére.
    2. Ha nAkkor <0 akárn a szóköz karaktereket minden sor elejéről eltávolítjuk. Ha egy adott sor nem tartalmaz elegendő szóközt, akkor az összes vezető szóköz karakter törlődik.
    3. Ha n == 0, akkor a vonal változatlan marad. A vonali terminátorok azonban még mindig normalizáltak.
  3. A kapott vonalakat ezután összefűzzük és visszaadjuk.

Például:

@Test public void whenPositiveArgument_thenReturnIndentedString () {String multilineStr = "Ez \ na multiline \ nstring."; String outputStr = "Ez \ n többsoros \ n karakterlánc. \ N"; String postIndent = multilineStr.indent (3); assertThat (postIndent, egyenlőTo (outputStr)); }

Negatívumot is átadhatunk int hogy csökkentse a húr behúzását. Például:

@Test public void whenNegativeArgument_thenReturnReducedIndentedString () {String multilineStr = "Ez \ n többsoros \ n karakterlánc."; String outputStr = "Ez \ n többsoros \ n karakterlánc. \ N"; String postIndent = többsorosStr.indent (-2); assertThat (postIndent, egyenlőTo (outputStr)); }

3. átalakítás ()

Alkalmazhatunk egy függvényt a ez karakterlánc a átalakítás () módszer. A függvénynek egyetlenre kell számítania Húr érvet és eredményt ad:

@Test public void whenTransformUsingLamda_thenReturnTransformedString () {String result = "hello" .transform (input -> input + "world!"); assertThat (eredmény, egyenlőTo ("szia világ!")); }

Nem szükséges, hogy a kimenet string legyen. Például:

@Test public void whenTransformUsingParseInt_thenReturnInt () {int result = "42" .transform (Integer :: parseInt); assertThat (eredmény, egyenlőTo (42)); }

4. Következtetés

Ebben a cikkben feltártuk az újat Húr API-k a Java 12-ben. Szokás szerint a kódrészletek megtalálhatók a GitHubon.