Memisahkan Rentetan dengan Nilai Kosong Terpelihara dalam Java
Apabila melakukan pemisahan rentetan menggunakan kaedah String.split(), tingkah laku yang tidak dijangka berlaku apabila pembatas berturut-turut mengakibatkan nilai kosong dialih keluar daripada tatasusunan yang terhasil. Walau bagaimanapun, jangkaan mungkin untuk mengekalkan nilai kosong ini untuk mengekalkan susunan dan struktur asal data.
String data = "5|6|7||8|9||"; String[] split = data.split("\|"); System.out.println(split.length);
Dalam contoh ini, dengan kaedah "split()" lalai, hanya enam nilai dikembalikan : [5, 6, 7, 8, 9, KOSONG]. Untuk mengekalkan nilai kosong, versi terlampau beban split() yang mengambil parameter had boleh digunakan. Dengan menetapkan had kepada nilai negatif, nilai kosong dikekalkan.
String[] split = data.split("\|", -1);
Dokumentasi untuk split(regex, had) menyatakan bahawa apabila had bukan positif, corak akan digunakan seberapa banyak kali yang mungkin, membenarkan tatasusunan yang terhasil mempunyai sebarang panjang, dan rentetan kosong yang mengekori akan menjadi dibuang.
Pengecualian:
Adalah penting untuk ambil perhatian bahawa mengalih keluar rentetan kosong mengekor hanya masuk akal jika rentetan kosong tersebut dibuat semasa proses pemisahan. Contohnya, membelah rentetan kosong ("") dengan sebarang pembatas akan menghasilkan tatasusunan yang mengandungi rentetan kosong: ["", ""]. Ini kerana tiada pemisahan untuk dilakukan, jadi rentetan asal itu sendiri diwakili sebagai rentetan kosong dalam tatasusunan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengekalkan Rentetan Kosong Apabila Memisahkan Rentetan di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!