当前位置: 移动技术网 > IT编程>移动开发>Android > Android实现中文按拼音排序方法

Android实现中文按拼音排序方法

2019年07月24日  | 移动技术网IT编程  | 我要评论

萌芽幼儿园,中组部副部长名单,星际精灵蓝多多演员表

本文的需求是将一组数据按某一字段中文拼音排序,分享给大家android实现中文按拼音排序方法,供大家参考,具体内容如下
1、test测试类:

pinyincomparator comparator = new pinyincomparator(); 
    collections.sort(strlist, comparator); 

其中strlist中放置了数据,可以是任何对象,但要对pinyincomparator中的compare进行对应的修改,我demo中为string[]。

2、pinyincomparator排序类:

public class pinyincomparator implements comparator<object> { 
  /** 
   * 比较两个字符串 
   */ 
  public int compare(object o1, object o2) { 
    string[] name1 = (string[]) o1; 
    string[] name2 = (string[]) o2; 
    string str1 = getpingyin(name1[0]); 
    string str2 = getpingyin(name2[0]); 
    int flag = str1.compareto(str2); 
    return flag; 
  } 
 
  /** 
   * 将字符串中的中文转化为拼音,其他字符不变 
   * 
   * @param inputstring 
   * @return 
   */ 
  public string getpingyin(string inputstring) { 
    hanyupinyinoutputformat format = new hanyupinyinoutputformat(); 
    format.setcasetype(hanyupinyincasetype.lowercase); 
    format.settonetype(hanyupinyintonetype.without_tone); 
    format.setvchartype(hanyupinyinvchartype.with_v); 
 
    char[] input = inputstring.trim().tochararray();// 把字符串转化成字符数组 
    string output = ""; 
 
    try { 
      for (int i = 0; i < input.length; i++) { 
        // \\u4e00是unicode编码,判断是不是中文 
        if (java.lang.character.tostring(input[i]).matches( 
            "[\\u4e00-\\u9fa5]+")) { 
          // 将汉语拼音的全拼存到temp数组 
          string[] temp = pinyinhelper.tohanyupinyinstringarray( 
              input[i], format); 
          // 取拼音的第一个读音 
          output += temp[0]; 
        } 
        // 大写字母转化成小写字母 
        else if (input[i] > 'a' && input[i] < 'z') { 
          output += java.lang.character.tostring(input[i]); 
          output = output.tolowercase(); 
        } 
        output += java.lang.character.tostring(input[i]); 
      } 
    } catch (exception e) { 
      log.e("exception", e.tostring()); 
    } 
    return output; 
  } 
} 

以上就是本文的全部内容,希望对大家的学习有所帮助。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网