C 知道
[code="java"] System.out.println(Collator.getInstance(Locale.CHINA).compare("张大","张月")); System.out.println(Collator.getInstance(Locale.CHINA).compare("张楠","张月")); [/code]
打印结果如下: -1 1
大是d开头,月是y开头,排序正确 楠是n开头,月是y开头,排序错误???怎么回事
收起
首先,得懂得汉字字符的比较规则,是按拼音来的不假。但是,根本原因是因为编码表是按照拼音来的。以GB2312编码为例:
大码值 B4F3
楠码值 E9AA
月码值 D4C0
报告相同问题?
程序员都在用的中文IT技术交流社区
专业的中文 IT 技术社区,与千万技术人共成长
关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!