如何用Java中的笔划对中文字符串进行排序?

时间:2012-01-12 10:17:48

标签: java internationalization

是否有任何库可以通过Java中的笔划对中文字符串进行排序?

2 个答案:

答案 0 :(得分:3)

尝试使用java.text.Collator中文Locale

答案 1 :(得分:2)

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

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

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

另请查看Chinese Character Web API,它提供来自Unihan数据库的数据。