【问题标题】:How to sort Chinese strings by stroke in Java?如何在Java中按笔划对中文字符串进行排序?
【发布时间】:2012-01-12 10:17:48
【问题描述】:

在Java中有没有按笔画对中文字符串进行排序的库?

【问题讨论】:

    标签: java internationalization


    【解决方案1】:

    试试java.text.Collator 中文版Locale

    【讨论】:

    • 谢谢。好像Locale.SIMPLIFIED_CHINESE按汉语拼音排序,而Locale.TRADITIONAL_CHINESE按笔划排序。
    • 我不知道拼音或笔画是什么,但我很高兴它有帮助。
    【解决方案2】:

    如果您想自己滚动代码,数据的一个来源是 Unihan 数据库的 Radical-Stroke Counts 字段,来自 Unicode Consortium。该链接指向技术报告 38 中描述这些字段的部分。

    请注意,表意字符的笔画计数基于所显示字符的结构(或形态),即其字形。字形的形态是字体设计风格的函数——尤其是字体是否遵循繁体中文、简体中文或日文惯例。但是 Java 中的字符代码通常基于 Unicode 标准,它将所有这些约定中的字符统一在一个字符代码中。

    因此,您将需要外部信息来告诉您您的文本使用的是哪种约定。这反过来告诉您使用 Unihan 数据库的哪个字段。如果你知道你的中文文本字符串都是简体,或者都是繁体,那么你就有足够的信息了。

    还可以查看Chinese Character Web API,它提供来自 Unihan 数据库的数据。

    【讨论】:

      猜你喜欢
      • 2015-02-09
      • 1970-01-01
      • 2015-10-16
      • 2012-10-14
      • 2012-10-14
      • 2013-10-28
      • 1970-01-01
      • 2015-07-23
      • 1970-01-01
      相关资源
      最近更新 更多