[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开头,排序错误???怎么回事
[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