Pembaruan String API di Java 12

1. Perkenalan

Java 12 menambahkan beberapa API yang berguna ke kelas String . Dalam tutorial ini, kita akan menjelajahi API baru ini dengan contoh.

2. indentasi ()

Metode indent () menyesuaikan indentasi setiap baris string berdasarkan argumen yang diteruskan padanya.

Saat indent () dipanggil pada string, tindakan berikut diambil:

  1. String secara konseptual dipisahkan menjadi beberapa baris menggunakan lines () . lines () adalah API String yang diperkenalkan di Java 11.
  2. Setiap baris kemudian disesuaikan berdasarkan argumen int n yang diteruskan padanya dan kemudian diakhiri dengan feed baris ā€œ\ nā€.
    1. Jika n > 0, maka n spasi disisipkan di awal setiap baris.
    2. Jika n <0, maka maksimal n karakter spasi kosong dihilangkan dari awal setiap baris. Jika baris tertentu tidak berisi cukup spasi, maka semua karakter spasi putih di depan akan dihapus.
    3. Jika n == 0, maka garis tersebut tidak berubah. Namun, terminator jalur masih dinormalisasi.
  3. Garis yang dihasilkan kemudian digabungkan dan dikembalikan.

Sebagai contoh:

@Test public void whenPositiveArgument_thenReturnIndentedString() { String multilineStr = "This is\na multiline\nstring."; String outputStr = " This is\n a multiline\n string.\n"; String postIndent = multilineStr.indent(3); assertThat(postIndent, equalTo(outputStr)); }

Kita juga bisa mengirimkan int negatif untuk mengurangi lekukan string. Sebagai contoh:

@Test public void whenNegativeArgument_thenReturnReducedIndentedString() { String multilineStr = " This is\n a multiline\n string."; String outputStr = " This is\n a multiline\n string.\n"; String postIndent = multilineStr.indent(-2); assertThat(postIndent, equalTo(outputStr)); }

3. transform ()

Kita bisa menerapkan fungsi ke string ini menggunakan metode transform () . Fungsi tersebut harus mengharapkan argumen String tunggal dan menghasilkan hasil:

@Test public void whenTransformUsingLamda_thenReturnTransformedString() { String result = "hello".transform(input -> input + " world!"); assertThat(result, equalTo("hello world!")); }

Tidak perlu output harus berupa string. Sebagai contoh:

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

4. Kesimpulan

Pada artikel ini, kami menjelajahi API String baru di Java 12. Seperti biasa, potongan kode dapat ditemukan di GitHub.