Lelaran Melalui Titik Kod Unikod dalam Rentetan Java
Anda mungkin pernah menghadapi situasi di mana anda perlu melintasi titik kod Rentetan Java, tetapi kaedah standard String#codePointAt(int) tidak optimum. Walaupun ia mengembalikan titik kod pada offset aksara tertentu, ia tidak sejajar dengan offset titik kod.
Untuk menangani isu ini, pendekatan biasa ialah menggunakan String#charAt(int) untuk mengekstrak aksara pada indeks yang diberikan dan semak sama ada ia berada dalam julat pengganti tinggi. Walau bagaimanapun, kebimbangan timbul mengenai penyimpanan titik kod dalam julat pengganti tinggi (sama ada sebagai dua aksara atau satu) dan implikasi prestasi pendekatan sedemikian.
Mujurlah, Java menyediakan penyelesaian yang lebih cekap untuk lelaran melalui titik kod menggunakan String#codePointAt(int). Berikut ialah pendekatan komprehensif:
<code class="java">final int length = s.length(); for (int offset = 0; offset < length; ) { final int codepoint = s.codePointAt(offset); // Perform desired operations on the codepoint offset += Character.charCount(codepoint); }</code>
Kaedah ini mengendalikan titik kod di luar BMP dengan tepat, memastikan lelaran yang boleh dipercayai ke atas semua aksara Unikod.
Atas ialah kandungan terperinci Berikut ialah beberapa pilihan tajuk, menangkap intipati artikel anda dan mengemukakan soalan: * **Lelaran Melalui Titik Kod Unikod di Java: Bagaimanakah Kami Boleh Melakukannya dengan Cekap?** * **Rentetan Java dan Codep. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!