@Test
public void testSortPinyin() {
Collator cmp = Collator.getInstance(java.util.Locale.CHINA);
String[] arr = { "张三", "李四", "王五", "赵六", "JAVA", "123", "$%$#", "哈哈A",
"1哈哈A", "1哈哈b", "1哈哈a", "哈哈", "哈", "怡情" };
Arrays.sort(arr, cmp);
List list = Arrays.asList(arr);
System.out.println(list);
}
输出的结果是:[$%$#, 123, 1哈哈a, 1哈哈A, 1哈哈b, JAVA, 哈, 哈哈, 哈哈A, 李四, 王五, 张三, 赵六, 怡情]
importjava.util.Comparator;importnet.sourceforge.pinyin4j.PinyinHelper;/*** 汉字按照拼音排序的比较器* @author KennyLee 2009-2-23 10:08:59**/publicclassPinyinComparatorimplementsComparator {publicintcompare(Object o1, Object o2) {charc1 = ((String) o1).charAt(0);charc2 = ((String) o2).charAt(0);returnconcatPinyinStringArray(PinyinHelper.toHanyuPinyinStringArray(c1)).compareTo(concatPinyinStringArray(PinyinHelper.toHanyuPinyinStringArray(c2)));}privateString concatPinyinStringArray(String[] pinyinArray) {StringBuffer pinyinSbf = newStringBuffer();if((pinyinArray !=null) && (pinyinArray.length >0)) {for(inti =0; i