Rumah > Java > javaTutorial > Bagaimana untuk Memisahkan Rentetan Java Menggunakan Titik (.) sebagai Pembatas?

Bagaimana untuk Memisahkan Rentetan Java Menggunakan Titik (.) sebagai Pembatas?

Susan Sarandon
Lepaskan: 2024-11-23 07:30:11
asal
348 orang telah melayarinya

How to Correctly Split a Java String Using a Dot (.) as the Delimiter?

Rentetan Java Pemisahan dengan "." (Dot)

Di Java, kaedah split() digunakan untuk membahagikan rentetan kepada subrentetan berdasarkan pembatas yang ditentukan. Walau bagaimanapun, apabila cuba memisahkan rentetan pada aksara titik literal '.', ArrayIndexOutOfBoundsException mungkin dilemparkan.

Untuk menggambarkan isu ini, pertimbangkan kod berikut:

String filename = "D:/some folder/001.docx";
String extensionRemoved = filename.split(".")[0];
Salin selepas log masuk

Dalam kod di atas, niatnya adalah untuk mengalih keluar sambungan fail dengan membelah nama fail pada titik. Walau bagaimanapun, pelaksanaan kod ini akan menghasilkan pengecualian.

Sebaliknya, kod berikut berfungsi dengan betul:

String driveLetter = filename.split("/")[0];
Salin selepas log masuk

Ini disebabkan oleh fakta bahawa kaedah split() mentafsir '.' sebagai aksara kad bebas, yang sepadan dengan mana-mana aksara dalam rentetan. Untuk membelah pada titik tersurat, adalah perlu untuk melepaskannya menggunakan garis serong ke belakang:

String extensionRemoved = filename.split("\.")[0];
Salin selepas log masuk

Dengan melarikan diri dari titik, kami menunjukkan bahawa kami mahu membelah pada aksara literal, bukan kad bebas. Adalah penting untuk ambil perhatian bahawa watak sengkang terbalik itu sendiri ialah watak istimewa dalam regex, jadi ia juga perlu dilepaskan menggunakan sengkang terbalik yang lain.

Selain itu, apabila membelah pada titik, adalah penting untuk mengambil kira kes tepi di mana nama fail kosong atau hanya terdiri daripada titik. Jika anda cuba memisahkan rentetan sedemikian tanpa menggunakan parameter had kaedah split(), anda mungkin menghadapi ArrayIndexOutOfBoundsException. Untuk mengelakkan ini, gunakan nilai negatif untuk parameter had:

String extensionRemoved = filename.split("\.", -1)[0];
Salin selepas log masuk

Dengan menetapkan had kepada nilai negatif, anda melumpuhkan penyingkiran tempat kosong mengekor daripada tatasusunan yang terhasil, memastikan anda sentiasa mendapat nilai yang sah indeks walaupun untuk rentetan kosong atau satu aksara.

Atas ialah kandungan terperinci Bagaimana untuk Memisahkan Rentetan Java Menggunakan Titik (.) sebagai Pembatas?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan