Pengenalan
Menyalur melalui titik kod Unikod bagi Rentetan Java memerlukan unik pendekatan kerana Java menggunakan pengekodan UTF-16-esque. Artikel ini meneroka strategi yang berbeza dan menangani kebimbangan mengenai pengekodan aksara di luar Asas Berbilang Bahasa (BMP).
Mendekati Masalah
Pada mulanya, seseorang mungkin mempertimbangkan untuk menggunakan String #codePointAt(int) diindeks mengikut offset aksara. Walau bagaimanapun, pendekatan ini mengemukakan dua kebimbangan: ia tidak diindeks oleh offset titik kod dan pengendalian titik kod di luar BMP menimbulkan cabaran.
Pendekatan alternatif melibatkan penggunaan String#charAt(int) untuk mendapatkan aksara dan menguji keahlian mereka dalam julat pengganti tinggi. Walaupun kaedah ini menyediakan cara untuk menentukan sama ada titik kod berada di luar BMP, ia datang dengan kelemahan berikut:
Penyelesaian Optimum
Nasib baik, Java menyediakan cara kanonik untuk lelaran pada titik kod menggunakan String#codePointAt(int):
<code class="java">for (int offset = 0; offset < length; ) { final int codepoint = s.codePointAt(offset); // do something with the codepoint offset += Character.charCount(codepoint); }</code>
Menangani Kebimbangan
Kesimpulan
Untuk meringkaskan , lelaran melalui titik kod Unicode dalam Java Strings memerlukan pemahaman yang lebih mendalam tentang pengekodan asas. Walau bagaimanapun, menggunakan pendekatan kanonik yang digariskan dalam artikel ini menyediakan penyelesaian yang betul dan cekap untuk keperluan biasa ini.
Atas ialah kandungan terperinci Bagaimanakah anda melakukan lelaran melalui titik kod Unicode dalam Java Strings?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!