java中实现汉语拼音排序

import java.util.Arrays;   
import java.util.Comparator;   
import java.util.List;   
  
import net.sourceforge.pinyin4j.PinyinHelper;   
  
public class PinyinComparator implements Comparator {   
  
    private String concatPinyinStringArray(String[] pinyinArray) {   
         StringBuffer pinyinStrBuf = new StringBuffer();   
  
       if ((null != pinyinArray) && (pinyinArray.length > 0)) {   
             for (int i = 0; i < pinyinArray.length; i++) {   
                 pinyinStrBuf.append(pinyinArray[i]);   
             }   
         }   
        String outputString = pinyinStrBuf.toString();   
         return outputString;   
    }   
   
    public int compare(Object o1, Object o2) {   
   
         char c1 = ((String) o1).charAt(0);   
         char c2 = ((String) o2).charAt(0);   
         return concatPinyinStringArray(   
                 PinyinHelper.toHanyuPinyinStringArray(c1)).compareTo(   
                concatPinyinStringArray(PinyinHelper   
                         .toHanyuPinyinStringArray(c2)));   
     }   
   
     public static void main(String[] args) {   
         String[] data = { "孙", "孟", "宋", "尹", "廖", "张", "张", "张", "徐", "昆",   
                 "曹", "曾", "怡" };   
  
         List<string></string> list = Arrays.asList(data);   
         Arrays.sort(data, new PinyinComparator());   
         System.out.println(list);   
     }   
   
 } 

你可能感兴趣的:(java,.net)