Java以codepoint(UTF-32)顺序排序字符串

时间:2010-01-22 20:45:18

标签: java unicode compare

除了转换为UTF-8字节,或编写迭代和比较的比较函数之外,JDK 1.6中是否存在一些方法,它以完全Unicode代码点顺序而不是UCS-2代码点比较两个字符串购买?

我很欣赏这不是一件很难的代码。然而,我感到困惑的是1.6在java.lang.String以及Collat​​ion系统中有各种“codepoint”API,但显然没有什么可以简单地比较两个字符串而不会在代理上打嗝。

为了评论者的利益,我必须将一些数据提供给需要按此顺序排列的字符串的工具。

2 个答案:

答案 0 :(得分:1)

AFAIk,API没有这样的方法,但是自己实现它应该是微不足道的。只是出于好奇:你需要什么样的东西?

答案 1 :(得分:0)

为了完整起见,她解决了这个问题。也许有更好的解决方案:

   String sortedText = text
      .codePoints()
      .sorted()
      .mapToObj(i -> String.valueOf(Character.toChars(i)))
      .collect(Collectors.joining(""));