迭代Java 字串中的Unicode 代碼點
您可能遇到過需要遍歷Java 字串的程式碼點的情況,但是標準方法String#codePointAt(int) 不是最佳方法。雖然它會傳回特定字元偏移處的代碼點,但它與代碼點偏移量不對齊。
要解決此問題,常見的方法是利用 String#charAt(int) 提取位於給定索引並檢查它是否落在高代理範圍內。然而,人們對高代理項範圍內代碼點的儲存(無論是兩個字元還是一個字元)以及這種方法的效能影響產生了擔憂。
幸運的是,Java 提供了一個更有效的解決方案來迭代程式碼點使用 String#codePointAt(int)。這是一種綜合方法:
<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>
此方法可以準確處理 BMP 以外的程式碼點,確保對所有 Unicode 字元進行可靠迭代。
以上是以下是一些標題選項,可以抓住文章的精髓並提出問題: * **在 Java 中迭代 Unicode 程式碼點:我們如何有效率地完成它? ** ** * **Java 字串和 Codep的詳細內容。更多資訊請關注PHP中文網其他相關文章!