Di antara perubahan lainnya, JDK 11 memperkenalkan 6 metode baru untuk kelas java.lang.String:
repeat(int)
- Mengulangi String sebanyak yang disediakan olehint
parameterlines()
- Menggunakan Spliterator untuk menyediakan baris dari string sumber dengan malasisBlank()
- Menunjukkan jika String kosong atau hanya berisi karakter spasistripLeading()
- Menghapus ruang putih dari awalstripTrailing()
- Menghapus ruang putih dari ujungstrip()
- Menghapus spasi dari awal dan akhir string
Secara khusus, strip()
terlihat sangat mirip dengan trim()
. Sesuai artikel ini, strip*()
metode dirancang untuk:
Metode String.strip (), String.stripLeading (), dan String.stripTrailing () memangkas spasi putih [seperti yang ditentukan oleh Character.isWhiteSpace ()] di depan, belakang, atau depan dan belakang String yang ditargetkan.
String.trim()
JavaDoc menyatakan:
/**
* Returns a string whose value is this string, with any leading and trailing
* whitespace removed.
* ...
*/
Yang hampir identik dengan kutipan di atas.
Apa sebenarnya perbedaan antara String.trim()
dan String.strip()
sejak Java 11?
Berikut adalah unit-test yang menggambarkan jawaban oleh @MikhailKholodkov, menggunakan Java 11.
(Perhatikan bahwa di
\u2000
atas\u0020
dan tidak dianggap spasi olehtrim()
)sumber
Secara umum kedua metode menghilangkan spasi di depan dan di belakang dari string. Namun perbedaannya muncul ketika kita bekerja dengan karakter unicode atau fitur multibahasa.
trim () menghapus semua karakter di depan dan di belakang yang nilai ASCII-nya kurang dari atau sama dengan 32 ('U + 0020' atau spasi).
Menurut standar Unicode ada berbagai karakter spasi yang memiliki nilai ASCII lebih dari 32 ('U + 0020'). Contoh: 8193 (U + 2001).
Untuk mengidentifikasi karakter spasi ini, metode baru isWhitespace (int) telah ditambahkan dari Java 1.5 di kelas Character. Metode ini menggunakan unicode untuk mengidentifikasi karakter spasi. Anda dapat membaca lebih lanjut tentang karakter spasi unicode di sini .
Strip metode baru yang ditambahkan di java 11 menggunakan metode Character.isWhitespace (int) ini untuk mencakup berbagai karakter spasi putih dan menghapusnya.
contoh
Keluaran
Catatan: Jika Anda menjalankan pada mesin windows, Anda mungkin tidak dapat melihat output yang sama karena set unicode terbatas. Anda dapat mencoba beberapa kompiler online untuk menguji kode ini.
referensi: Perbedaan antara metode trim dan strip java
sumber