Rumah > Java > javaTutorial > teks badan

Bagaimana untuk Cekap Berulang Melalui Titik Kod Unicode dalam Rentetan Java?

Linda Hamilton
Lepaskan: 2024-11-01 02:13:28
asal
999 orang telah melayarinya

How to Efficiently Iterate Through Unicode Codepoints in Java Strings?

Lelaran melalui Titik Kod Unikod dalam Rentetan Java

String#codePointAt() menyediakan cara yang cekap untuk mendapatkan semula titik kod Unikod pada offset aksara tertentu . Walau bagaimanapun, pembangun mungkin menghadapi cabaran apabila cuba mengulangi titik kod secara berurutan.

Satu pendekatan yang berpotensi melibatkan penggunaan String#charAt() untuk mendapatkan semula aksara dan kemudian menyemak sama ada ia berada dalam julat pengganti tinggi. Jika pengganti tinggi dikesan, String#codePointAt() boleh digunakan untuk mendapatkan titik kod dan indeks boleh ditambah sebanyak 2. Untuk aksara di luar julat ini, nilai char boleh dianggap terus sebagai titik kod dan indeks boleh ditambah. oleh 1.

Walau bagaimanapun, pendekatan ini menimbulkan kebimbangan mengenai pengekodan aksara di luar Asas Berbilang Bahasa (BMP) menggunakan skim penggantian. Selain itu, ia mungkin dikenakan overhed pengiraan disebabkan oleh operasi capaian aksara yang berulang.

Untuk senario yang melibatkan aksara di luar BMP, Java menggunakan pengekodan UTF-16 (UTF-16-esque) yang Diubahsuai secara dalaman. Watak di luar BMP diwakili menggunakan urutan dua unit kod pengganti. Untuk mengulangi titik kod dengan cekap dalam kes sedemikian, pembangun boleh menggunakan pendekatan kanonik berikut:

final int length = s.length();
for (int offset = 0; offset < length; ) {
   final int codepoint = s.codePointAt(offset);

   // perform operations on the codepoint

   offset += Character.charCount(codepoint);
}
Salin selepas log masuk

Pendekatan ini berulang ke titik kod secara berurutan, mengendalikan aksara dalam BMP dan yang dikodkan menggunakan skim tumpangan dengan berkesan. Dengan menggunakan codePointAt() dan charCount(), ia mengoptimumkan proses untuk traversal titik kod yang cekap dalam Java Strings.

Atas ialah kandungan terperinci Bagaimana untuk Cekap Berulang Melalui Titik Kod Unicode dalam Rentetan Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!