Rumah > Java > javaTutorial > Bagaimanakah Saya Boleh Menghalang Kaedah `split()` Java daripada Mengeluarkan Rentetan Kosong?

Bagaimanakah Saya Boleh Menghalang Kaedah `split()` Java daripada Mengeluarkan Rentetan Kosong?

DDD
Lepaskan: 2024-12-29 13:10:15
asal
538 orang telah melayarinya

How Can I Prevent Java's `split()` Method from Removing Empty Strings?

Membetulkan Pembuangan Nilai Kosong dalam Pemisahan Rentetan Java

Apabila menggunakan kaedah split() pada Rentetan Java, anda mungkin menghadapi hasil yang tidak dijangka di mana nilai kosong dialih keluar daripada tatasusunan yang terhasil. Ini boleh dilihat dalam contoh berikut:

String data = "5|6|7||8|9||";
String[] split = data.split("\|");
System.out.println(split.length);
Salin selepas log masuk

Dalam kes ini, anda menjangkakan untuk mendapatkan tatasusunan 8 nilai: [5, 6, 7, EMPTY, 8, 9, EMPTY, EMPTY] . Walau bagaimanapun, hanya 6 nilai dikembalikan.

Sebab bagi kelakuan ini ialah kaedah split() secara lalai mengalih keluar rentetan kosong yang mengekori daripada tatasusunan hasil. Untuk melumpuhkan tingkah laku ini dan memasukkan nilai kosong, anda boleh menggunakan versi terlampau beban split():

String[] split = data.split("\|", -1);
Salin selepas log masuk

Dengan menetapkan parameter had kepada nilai negatif (-1 dalam kes ini), anda mengarahkan kaedah untuk menggunakan corak seberapa banyak yang mungkin dan memasukkan sebarang rentetan kosong mengekori.

Ini mungkin kerana split(regex) secara dalaman memanggil split(regex, 0), yang mengalih keluar trailing rentetan kosong. Dengan memberikan had negatif, anda melumpuhkan tingkah laku ini dengan berkesan dan memaksa kaedah untuk mengekalkan semua nilai, termasuk yang kosong.

Pengecualian:

Adalah penting untuk ambil perhatian bahawa mengalih keluar mengekori rentetan kosong hanya masuk akal jika ia dicipta oleh proses perpecahan. Untuk String kosong, kerana ia tidak boleh dipisahkan lagi, membelahnya akan menghasilkan tatasusunan dengan satu nilai rentetan kosong. Ini kerana split() tidak melakukan sebarang pemisahan sebenar, jadi rentetan kosong mewakili input asal, bukan rentetan kosong yang dijana oleh operasi pemisahan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menghalang Kaedah `split()` Java daripada Mengeluarkan Rentetan Kosong?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan