在 *Unicode 码位* 上按字典顺序比较两个 Java 字符串的首选方法是什么?
对于我正在编写的Java程序,我特别需要按Unicode码位对字符串进行字典排序。这与开始处理基本多语言平面之外的值时不同。 在 16 位值上按字典顺序比较字符串。要查看这不是等效的,请注意 U+FD00 阿拉伯语连字 HAH 与 YEH 隔离形式小于 U+1D11E 音乐符号 G CLEF,但阿拉伯语字符的 Java 对象比 clef 的代理项对大。String.compareTo()
String.compareTo()
char
String
"\uFD00"
"\uD834\uDD1E"
我可以使用 String.codePointAt()
和 Character.charCount()
手动循环代码点,并在必要时自己进行比较。是否有API函数或其他更“规范”的方式来执行此操作?