Java String Split with Dot (.)
Di Java, kaedah split() biasanya digunakan untuk memecahkan rentetan berdasarkan pembatas tertentu. Walau bagaimanapun, apabila cuba memisahkan rentetan pada titik literal (.), pengaturcara menghadapi ralat berikut:
fileName.split(".")[0]; ArrayIndexOutOfBoundsException
Untuk memahami punca pengecualian ini, kita mesti menyelidiki regex. Titik (.) ialah metacharacter dalam regex yang sepadan dengan mana-mana aksara. Oleh itu, menggunakan titik tersurat tanpa melepaskannya mengakibatkan tingkah laku terbelah yang tidak disengajakan.
Pendekatan yang betul ialah melepaskan titik itu menggunakan garis serong ke belakang () untuk memastikan ia ditafsirkan sebagai aksara literal:
fileName.split("\.")[0];
Ini memastikan bahawa rentetan dipisahkan secara khusus pada aksara titik literal, bukannya mana-mana aksara lain.
Isu lain yang mungkin arise ialah ArrayIndexOutOfBoundsException apabila rentetan input hanya terdiri daripada titik (.). Untuk mengelakkan kes tepi ini, gunakan versi terlampau beban split() dengan parameter had ditetapkan kepada nilai negatif:
fileName.split("\.", -1)[0];
Menetapkan had kepada nilai negatif menyahdayakan kelakuan mengalih keluar kosong mengekor daripada tatasusunan yang terhasil , memastikan bahawa walaupun rentetan input hanyalah titik, tatasusunan dengan dua kosong dikembalikan:
".".split("\.", -1) // [""," "]
Dengan mengikuti pendekatan ini, anda boleh memisahkan rentetan Java pada aksara titik dengan berkesan sambil mengelakkan kemungkinan pengecualian.
Atas ialah kandungan terperinci Bagaimana untuk Memisahkan Rentetan Java dengan Betul Menggunakan Titik (.) sebagai Pembatas?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!