Rumah >Java >javaTutorial >Mengapa Java 8 Mengubah Gelagat `String.split()`, dan Bagaimana Saya Boleh Mengekalkan Keserasian?
Menyingkap Percanggahan Split dalam Java 8
Latar Belakang:
Sebelum Java 8, String. kaedah split akan secara konsisten memasukkan rentetan kosong yang mendahului dan mengekori dalam tatasusunan hasilnya. Walau bagaimanapun, tingkah laku ini berubah dalam Java 8. Artikel ini menyelidiki sebab di sebalik perubahan ini dan menyediakan strategi untuk mengekalkan keserasian merentas versi Java.
Anjakan Corak dalam Java 8:
Java 8 memperkenalkan tweak kepada dokumentasi kedua-dua String.split dan Pattern.split. Klausa baharu telah ditambah, menyatakan bahawa subrentetan utama kosong hanya akan disertakan dalam tatasusunan hasil jika terdapat padanan lebar positif pada permulaan jujukan input. Padanan lebar sifar pada permulaan input, sebaliknya, tidak akan menghasilkan subrentetan utama kosong.
Perbandingan Kod:
Membandingkan kod pelaksanaan rujukan untuk Corak .split dalam Java 7 dan Java 8 mendedahkan pengenalan pernyataan bersyarat dalam Java 8. Pernyataan ini menyemak sama ada padanan pada permulaan jujukan input mempunyai lebar sifar dan jika ya, kecualikannya daripada hasilnya.
// Code added in Java 8 if (index == 0 && index == m.start() && m.start() == m.end()) { // no empty leading substring included for zero-width match // at the beginning of the input char sequence. continue; }
Memelihara Keserasian:
Untuk mengekalkan konsistensi merentas versi Java dan mengekalkan tingkah laku Java 8, pengguna boleh mengikuti perkara berikut langkah:
Dengan mengikuti garis panduan ini, pembangun boleh memastikan bahawa tingkah laku String.split kekal konsisten dan boleh diramal merentas versi Java.
Atas ialah kandungan terperinci Mengapa Java 8 Mengubah Gelagat `String.split()`, dan Bagaimana Saya Boleh Mengekalkan Keserasian?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!