1. 程式人生 > >List中英文混合排序

List中英文混合排序

上一篇寫了list漢語拼音排序:漢語拼音排序

對排序規則稍加修改即可實現中英文混合排序

    /**   
     * 功能:定義排序規則,實現中英文混合排序   
     *   
     */      
    public  class ComparatorHanYuPinYin implements Comparator<String>{      
        @Override      
        public int compare(String o1, String o2) {      
            return convertToHanYuPinYinString(o1).compareTo(convertToHanYuPinYinString(o2));      
        }      
              
        private String convertToHanYuPinYinString(String str){      
                  
            StringBuilder sb=new StringBuilder();      
            String[] arr=null;    
              
            for(int i=0;i<str.length();i++){      
                arr=PinyinHelper.toHanyuPinyinStringArray(str.charAt(i));      
                if(arr!=null && arr.length>0){      
                    for (String string : arr) {      
                        sb.append(string);      
                    }      
                }
                else{                   
                 sb.append(str.charAt(i));  
              }
          }       

        return sb.toString(); 
      } 
}