android 汉字拼音排序,Android实现中文按拼音排序方法
本文的需求是将一组数据按某一字段中文拼音排序,分享给大家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实现中文按拼音排序方法相关推荐
- android 汉字转字节,android实现汉字转拼音功能 带多音字识别
android 汉字转拼音带多音字识别功能,供大家参考,具体内容如下 问题来源 在做地名按首字母排序的时候出现了这样一个bug.长沙会被翻译拼音成zhangsha,重庆会被翻译拼音成zhong qin ...
- php按中文排序,php按照中文首字母排序
1> 网络上很多php的工具类可以将汉字转为拼音: 2> 将拼音进行排序即可 另一种则是类似mysql转码方式: 1 foreach ($array as $key=>$value) ...
- MySQL排序(根据中文首字母排序)
1.常规排序ASC DESC ASC 正序 DESC倒叙 – 此处不用多讲 2.自定义排序 自定义排序是根据自己想要的特定字符串(数字)顺序进行排序.主要是使用函数 FIELD(str,str1,st ...
- java对中文排序_java对中文(拼音)进行排序
拼音排序 拼音有好几种方式,其中最主要的是中华人民共和国的汉语拼音 Chinese Phonetic.对汉字的排序有两种:一种是宽松的,能够按拼音排序最常用的汉字,另一种是严格的,能够按拼音排序绝大部 ...
- android 汉字 unicode编码,Android解析UniCode编码
前言 从网络获取JSON信息的时候,有时我们会获取到一些不知名的东西,比如下面的情况就是我获取的json信息: 可以看到artist_name我所希望的是歌手的名字,结果出来的却是一堆不知道什么东西的 ...
- java汉字转拼音区别多音字_java中文转拼音,支持多音字词组,不支持音标
官方的pinyin4j虽然强大,能够支持音标转换,但硬伤在于不支持词组.就此特地将pinyin4j的词库提取出来,研究了下,发现多音字有2000多,去掉音标就1000多,常用字也就500左右.然后估摸 ...
- android汉字转url,Android将文本中的URL转换为超链接工具类(原文本有超链接标签也适用)...
public class TextToLinkUtil { public static String textContainUrlToLink(String urlText) { // 先拆分原字符串 ...
- Elasticsearch安装拼音插件结合IK中文分词+拼音(在线+离线)
1.在线联网安装 直接进入容器内部进行编辑 # 进入容器内部编辑 docker exec -it elasticsearch bash# 安装IK分词器拼音插件(Github官网) elasticse ...
- python数字转拼音输出_Python 将中文转拼音
文字转拼音 import os.path class PinYin(object): def __init__(self): self.word_dict = {} def load_word(sel ...
- python中文转拼音实例_Python 将中文转拼音
文字转拼音 import os.path class PinYin(object): def __init__(self): self.word_dict = {} def load_word(sel ...
最新文章
- 信息安全标准化国际组织
- 经典C语言程序100例之七零
- 在处理向该请求提供服务所需的配置文件时出错。请检查下面的特定错误详细信息并适当地修改配置文件。...
- Openwrt上配置Aria2迅雷离线下载步骤
- 利用percona-toolkit工具检查MySQL数据库主从复制数据的一致性,以及修复。
- LeetCode 447. 回旋镖的数量(哈希map+组合数)
- hdu 1233还是畅通工程 最小生成树(入门题)prim算法
- 对目录下所有库文件进行rpath更改操作的SHELL脚本
- 用acdess制作html文件,使用ACDSee制作图片注释
- C语言中file文件指针概念及其操作 (转载)
- 怎么查询电脑mac地址
- WEB/HTTP服务器搭建
- Linux打开wim文件,linux笔记 wim编辑器
- 001 A Comprehensive Survey of Privacy-preserving Federated Learning(便于寻找:FedAvg、垂直联邦学习的基本步骤)
- 建立二叉树:已知层次遍历顺序建立二叉树、已知先序遍历顺序建立二叉树
- L2-013 红色警报 (25 分)
- OpenCV之canny()函数,边缘检测,高斯平滑滤波的理解
- simulink 风电调频,双馈风机调频,VSG虚拟同步机控制
- 武汉理工大学计算机专业强化,2020年武汉理工大学计算机改考408
- 中国移动国际短信业务正式开通 每条收费1元