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:
- A húr fogalmilag sorokra van elválasztva a vonalak (). vonalak () a Java 11-ben bevezetett String API.
- Ezután minden sort beállítunk a int érv n átadta neki, majd utótaggal látta el a „\ n” sort.
- Ha n > 0, akkor n szóközök kerülnek beillesztésre az egyes sorok elejére.
- 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.
- Ha n == 0, akkor a vonal változatlan marad. A vonali terminátorok azonban még mindig normalizáltak.
- 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.