Java String Split Tidak Termasuk Nilai Kosong
Apabila membelah rentetan menggunakan kaedah split(), nilai kosong yang terhasil daripada operasi split adalah biasanya dialih keluar daripada tatasusunan yang terhasil. Ini boleh membawa kepada hasil yang tidak dijangka, terutamanya apabila bekerja dengan rentetan yang mungkin mengandungi nilai kosong.
Pertimbangkan coretan kod berikut:
String data = "5|6|7||8|9||"; String[] split = data.split("\|"); System.out.println(split.length);
Dalam contoh di atas, output yang dijangkakan ialah tatasusunan dengan 8 elemen: [5, 6, 7, EMPTY, 8, 9, EMPTY, EMPTY]. Walau bagaimanapun, output sebenar hanya 6 nilai, tidak termasuk nilai kosong.
Untuk menangani isu ini dan memastikan bahawa nilai kosong disertakan dalam tatasusunan yang terhasil, kita boleh menggunakan versi terlebih beban kaedah split() yang mengambil parameter had tambahan yang ditetapkan kepada nilai negatif.
String[] split = data.split("\|", -1);
Dengan menetapkan parameter had kepada -1, kami menunjukkan bahawa tiada had pada bilangan kali corak pemisahan digunakan. Ini menghalang tingkah laku lalai mengecualikan rentetan kosong mengekori daripada tatasusunan hasil.
Dokumentasi kaedah split() menyatakan bahawa jika had lebih besar daripada sifar, corak akan digunakan sehingga had itu dan tatasusunan yang terhasil akan mempunyai panjang tidak lebih daripada had. Jika had adalah bukan positif, corak akan digunakan seberapa banyak kali yang mungkin dan tatasusunan yang terhasil boleh mempunyai sebarang panjang.
Adalah penting untuk ambil perhatian bahawa kelakuan lalai mengecualikan rentetan kosong mengekori hanya digunakan pada kosong rentetan yang dicipta hasil daripada operasi belah. Jika rentetan kosong sudah ada dalam rentetan asal, rentetan itu masih akan disertakan dalam tatasusunan yang terhasil.
Dengan memahami kelakuan kaedah split() dan menggunakan parameter had dengan berkesan, kita boleh mengawal kemasukan atau pengecualian nilai kosong dalam tatasusunan yang terhasil, memastikan operasi pemisahan kami menghasilkan hasil yang diingini.
Atas ialah kandungan terperinci Bagaimana untuk Mengekalkan Rentetan Kosong Apabila Memisahkan Rentetan Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!