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

1、Test测试类:

PinyinComparator comparator = new PinyinComparator();

Collections.sort(strList, comparator);

其中strList中放置了数据,可以是任何对象,但要对PinyinComparator中的compare进行对应的修改,我Demo中为String[]。

2、PinyinComparator排序类:

public class PinyinComparator implements Comparator {

/**

* 比较两个字符串

*/

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实现中文按拼音排序方法相关推荐

  1. android 汉字转字节,android实现汉字转拼音功能 带多音字识别

    android 汉字转拼音带多音字识别功能,供大家参考,具体内容如下 问题来源 在做地名按首字母排序的时候出现了这样一个bug.长沙会被翻译拼音成zhangsha,重庆会被翻译拼音成zhong qin ...

  2. php按中文排序,php按照中文首字母排序

    1> 网络上很多php的工具类可以将汉字转为拼音: 2> 将拼音进行排序即可 另一种则是类似mysql转码方式: 1 foreach ($array as $key=>$value) ...

  3. MySQL排序(根据中文首字母排序)

    1.常规排序ASC DESC ASC 正序 DESC倒叙 – 此处不用多讲 2.自定义排序 自定义排序是根据自己想要的特定字符串(数字)顺序进行排序.主要是使用函数 FIELD(str,str1,st ...

  4. java对中文排序_java对中文(拼音)进行排序

    拼音排序 拼音有好几种方式,其中最主要的是中华人民共和国的汉语拼音 Chinese Phonetic.对汉字的排序有两种:一种是宽松的,能够按拼音排序最常用的汉字,另一种是严格的,能够按拼音排序绝大部 ...

  5. android 汉字 unicode编码,Android解析UniCode编码

    前言 从网络获取JSON信息的时候,有时我们会获取到一些不知名的东西,比如下面的情况就是我获取的json信息: 可以看到artist_name我所希望的是歌手的名字,结果出来的却是一堆不知道什么东西的 ...

  6. java汉字转拼音区别多音字_java中文转拼音,支持多音字词组,不支持音标

    官方的pinyin4j虽然强大,能够支持音标转换,但硬伤在于不支持词组.就此特地将pinyin4j的词库提取出来,研究了下,发现多音字有2000多,去掉音标就1000多,常用字也就500左右.然后估摸 ...

  7. android汉字转url,Android将文本中的URL转换为超链接工具类(原文本有超链接标签也适用)...

    public class TextToLinkUtil { public static String textContainUrlToLink(String urlText) { // 先拆分原字符串 ...

  8. Elasticsearch安装拼音插件结合IK中文分词+拼音(在线+离线)

    1.在线联网安装 直接进入容器内部进行编辑 # 进入容器内部编辑 docker exec -it elasticsearch bash# 安装IK分词器拼音插件(Github官网) elasticse ...

  9. python数字转拼音输出_Python 将中文转拼音

    文字转拼音 import os.path class PinYin(object): def __init__(self): self.word_dict = {} def load_word(sel ...

  10. python中文转拼音实例_Python 将中文转拼音

    文字转拼音 import os.path class PinYin(object): def __init__(self): self.word_dict = {} def load_word(sel ...

最新文章

  1. 信息安全标准化国际组织
  2. 经典C语言程序100例之七零
  3. 在处理向该请求提供服务所需的配置文件时出错。请检查下面的特定错误详细信息并适当地修改配置文件。...
  4. Openwrt上配置Aria2迅雷离线下载步骤
  5. 利用percona-toolkit工具检查MySQL数据库主从复制数据的一致性,以及修复。
  6. LeetCode 447. 回旋镖的数量(哈希map+组合数)
  7. hdu 1233还是畅通工程 最小生成树(入门题)prim算法
  8. 对目录下所有库文件进行rpath更改操作的SHELL脚本
  9. 用acdess制作html文件,使用ACDSee制作图片注释
  10. C语言中file文件指针概念及其操作 (转载)
  11. 怎么查询电脑mac地址
  12. WEB/HTTP服务器搭建
  13. Linux打开wim文件,linux笔记 wim编辑器
  14. 001 A Comprehensive Survey of Privacy-preserving Federated Learning(便于寻找:FedAvg、垂直联邦学习的基本步骤)
  15. 建立二叉树:已知层次遍历顺序建立二叉树、已知先序遍历顺序建立二叉树
  16. L2-013 红色警报 (25 分)
  17. OpenCV之canny()函数,边缘检测,高斯平滑滤波的理解
  18. simulink 风电调频,双馈风机调频,VSG虚拟同步机控制
  19. 武汉理工大学计算机专业强化,2020年武汉理工大学计算机改考408
  20. 中国移动国际短信业务正式开通 每条收费1元

热门文章

  1. 历史记录html页面,HTML5 history 页面历史记录
  2. 设计思维的定义与一些步骤
  3. arx 锁定解锁图层 刷新透明度
  4. easyui 行编辑中上传附件
  5. 数学分析高等代数考研试题考研真题汇总目录2020-01-10更新
  6. 5G网络架构 — 接入网/传输网/核心网
  7. 大专计算机课教案,计算机课教案
  8. linux支持raid5阵列,Linux中raid磁盘阵列,磁盘阵列raid5
  9. 手绘板计算机技术,手绘板怎么用 手绘板和数位板的差别区别【详解】
  10. Linux下安装VNC远程控制软件