今天发现一篇关于中文名称排序的问题,觉得很好,现特转一下。记得以前做项目的时候遇到过这样的问题,当时客户要求要按照名字排序(中文),当时一直没解决好。
/*
* 实现中文名称的排序问题
*/
package package1;
import java.text.Collator;
import java.util.Arrays;
import java.util.Comparator;
public class SortByChinese {
/**
* @author luodada
* @param names
* @date 2009-06-16
* @return
*/
public static String[] getSortOfChinese(String[] names) {
// 强行对某个对象 collection 进行整体排序 的比较函数
// Collator 类执行区分语言环境的 String 比较
Comparator comp = Collator.getInstance(java.util.Locale.CHINA);
Arrays.sort(names, comp);
return names;
}
/**
* @author luodada
* @param args
* @date 2009-06-16
*/
public static void main(String[] args) {
String[] names = {"卡卡", "劳尔", "小小罗", "小罗", "大罗", "里贝里", "梅西", "亨利"};
SortByChinese.getSortOfChinese(names);
for (int i = 0 ; i < names.length ; i++) {
System.out.println(names[i]);
}
}
}
输出:
大罗
亨利
卡卡
劳尔
里贝里
梅西
小罗
小小罗