Rentetan Java Pisah dengan "." (Dot)
Isu di sini ialah sifat samar-samar titik "." aksara dalam pemisahan rentetan Java.
Dalam kod yang disediakan, baris String extensionRemoved = nama fail.split(".")[0]; gagal dengan ArrayIndexOutOfBoundsException kerana titik itu ditafsirkan sebagai aksara kad bebas yang sepadan dengan mana-mana aksara, menghasilkan tatasusunan kosong selepas membelah.
Untuk membelah pada titik literal, anda perlu melepaskannya menggunakan \.:
String extensionRemoved = filename.split("\.")[0];
Ini memastikan bahawa titik itu dianggap sebagai watak literal dan bukannya kad bebas.
Sebagai alternatif, anda boleh menggunakan versi terlampau beban dengan had negatif untuk melumpuhkan penyingkiran kosong mengekor daripada hasil:
String extensionRemoved = filename.split("\.", -1)[0];
Ini akan mengembalikan tatasusunan bukan kosong walaupun nama fail ialah satu titik.
Adalah penting untuk ambil perhatian bahawa jika nama fail mengandungi berbilang titik, kaedah split akan mengembalikan tatasusunan rentetan dibahagikan dengan titik. Oleh itu, adalah penting untuk mengendalikan bilangan elemen yang dikembalikan daripada kaedah split untuk mengelakkan sebarang kemungkinan pengecualian.
Atas ialah kandungan terperinci Bagaimana untuk Memisahkan Rentetan Java Menggunakan Titik Literal (.) dengan betul?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!