1. Pengenalan
Java 12 menambahkan beberapa API berguna ke kelas String . Dalam tutorial ini, kita akan meneroka API baru ini dengan contoh.
2. inden ()
Kaedah indent () menyesuaikan lekukan setiap baris rentetan berdasarkan argumen yang diteruskan kepadanya.
Apabila indent () dipanggil pada tali, tindakan berikut diambil:
- Rentetan itu secara konseptual dipisahkan menjadi garis menggunakan garis () . lines () adalah String API yang diperkenalkan di Java 11.
- Setiap baris kemudiannya diselaraskan berdasarkan int hujah n lulus kepadanya dan kemudian akhiran dengan suapan line "\ n".
- Sekiranya n > 0, maka ruang n dimasukkan pada awal setiap baris.
- Sekiranya n <0, maka hingga n watak ruang putih dikeluarkan dari awal setiap baris. Sekiranya garis yang diberikan tidak mengandungi ruang putih yang mencukupi, maka semua watak ruang putih utama akan dikeluarkan.
- Sekiranya n == 0, maka garis tetap tidak berubah. Walau bagaimanapun, penghentian talian masih dinormalisasi.
- Garisan 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 boleh melewati int negatif untuk mengurangkan lekukan tali. 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. ubah ()
Kita dapat menerapkan fungsi pada string ini menggunakan metode transform () . Fungsi harus mengharapkan satu argumen String dan menghasilkan hasilnya:
@Test public void whenTransformUsingLamda_thenReturnTransformedString() { String result = "hello".transform(input -> input + " world!"); assertThat(result, equalTo("hello world!")); }
Tidak semestinya output mesti berupa tali. Sebagai contoh:
@Test public void whenTransformUsingParseInt_thenReturnInt() { int result = "42".transform(Integer::parseInt); assertThat(result, equalTo(42)); }
4. Kesimpulan
Dalam artikel ini, kami meneroka String API baru di Java 12. Seperti biasa, potongan kode boleh didapati di GitHub.