中文排序要注意的问题

来源:互联网 发布:软件模块化设计 编辑:程序博客网 时间:2024/05/20 23:33
遇到了中文排序问题,比如想用拼音排序,

Java代码 复制代码 收藏代码
  1. String[] strs = {"张三(Z)","李四(L)","王五(W)"};
  2. //排序,默认是升序
  3. Arrays.sort(strs);



发现排序结果是:张三(Z)","李四(L)","王五(W),后来看了下《高质量java 151个建议》
一书,发现找到了答案,原来是每一个字符采用uft-8编码来比较,因为张排在李的前面,
所以就有这个答案了。因此建议使用的是compareto排序,如下:


Java代码 复制代码 收藏代码
  1. String[] strs = {"张三(Z)","李四(L)","王五(W)"};
  2. //定义一个中文排序器
  3. Comparator c = Collator.getInstance(Locale.CHINA);
  4. //升序排列
  5. Arrays.sort(strs,c);    
原创粉丝点击