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

Android实现中文按拼音排序方法,第1张

概述本文的需求是将一组数据按某一字段中文拼音排序,分享给大家Android实现中文按拼音排序方法,供大家参考,具体内容如下

本文的需求是将一组数据按某一字段中文拼音排序,分享给大家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;   } } 

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

总结

以上是内存溢出为你收集整理的Android实现中文按拼音排序方法全部内容,希望文章能够帮你解决Android实现中文按拼音排序方法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1149529.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-31
下一篇 2022-05-31

发表评论

登录后才能评论

评论列表(0条)

保存