`
lixiangda
  • 浏览: 1445 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

pinying4j使中文排序变得更简单

阅读更多
最近项目组做项目要用到中文排序的功能,为此特整理一下以下代码,共涉及到3个类
首先下载pinyin4j的jar包,
1.PingYingTest.java 这个是测试类
package pingying;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

public class PingYingTest {

public static void sort() {
// 数组排序
// String[] array = { "xyz中abc-中国", "xyz中abc-美国" };
// List list1 = Arrays.asList(array);
// Arrays.sort(array, new PinyinComparator());
// System.out.println(list1);

// 集合排序
List list2 = new ArrayList();
list2.add("东软集团");
list2.add("春秋航空");
list2.add("太保");
list2.add("北京奔驰");
// list2.add("abc");
// list2.add("bcd");
Collections.sort(list2, new PinyinComparator());
System.out.println(list2);
}

public static void main(String[] args) {
PingYingTest.sort();

// String str1="abc";
// String str2="bcd";
// List list3 = new ArrayList();
// list3.add(str1);
// list3.add(str2);
// System.out.println(str1.compareTo(str2));
// Collections.sort(list3);
// for (int i = 0; i < list3.size(); i++) {
// System.out.println(list3.get(i));
// }


}
}
2.PinyinComparator.java比较器
package pingying;

import java.util.Comparator;

/**
* 拼音比较器
*
* @author xdli
*
*/
public class PinyinComparator implements Comparator

{
public int compare(Object o1, Object o2) {
String str1 = PinyinUtil.getPingYin((String) o1);
String str2 = PinyinUtil.getPingYin((String) o2);
System.out.println("str1-"+str1+"-str2:"+str2+"----:"+str1.compareTo(str2));
return str1.compareTo(str2);
}
}
//春 c 秋 q abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
//东 d 软 r
3.PinyinUtil.java 拼音工具类
package pingying;

import net.sourceforge.pinyin4j.PinyinHelper;
import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;
import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType;
import net.sourceforge.pinyin4j.format.exception.*;

/**
* 拼音工具类
*
* @author xdli
*/
public class PinyinUtil {
/**
* 将字符串中的中文转化为拼音,其他字符不变
*
* @param inputString
* @return
*/
public static 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++) {
if (java.lang.Character.toString(input[i]).matches(
"[\\u4E00-\\u9FA5]+")) {
String[] temp = PinyinHelper.toHanyuPinyinStringArray(
input[i], format);
output += temp[0];
} else
output += java.lang.Character.toString(input[i]);
}
} catch (BadHanyuPinyinOutputFormatCombination e) {
e.printStackTrace();
}
return output;
}
}

分享到:
评论

相关推荐

    中文拼音排序

    在本项目中,我们将会详细探讨如何使用`pinyin4j`进行中文字符的拼音转换和排序。 首先,我们需要引入`pinyin4j`库到项目中。这通常通过Maven或Gradle的依赖管理工具完成。在Maven的`pom.xml`文件中,可以添加以下...

    pinyin4j拼音java

    《使用pinyin4j进行Java拼音...总结起来,pinyin4j是Java开发中处理汉字拼音问题的强大工具,其丰富的功能和易用的API使得拼音处理变得简单高效。掌握pinyin4j的使用,能够大大提升我们在处理中文数据时的工作效率。

    pinyin4j-2.5.0

    在Java开发中,有时候我们需要将汉字转换成对应的汉语拼音,以便进行各种处理,如搜索、排序或者处理多音字问题。这时,`pinyin4j-2.5.0`这个开源库就显得尤为重要。它是一个强大的工具,能够帮助开发者轻松地实现...

    汉字转拼音jar包_pinyin4j(java)

    `pinyin4j`是由Barry Zhang开发的一个开源项目,它提供了一套简洁的API,使得在Java或Android项目中集成汉字转拼音功能变得简单。该库不仅适用于标准Java环境,还兼容Android平台,因此在移动开发中也十分适用。 要...

    pinyin4j-2.5.0.zip

    pinyin4j能够轻松地将汉字转换成拼音,使得这些功能的实现变得简单而高效。 首先,我们来了解一下pinyin4j的基本用法。在Java代码中,你可以通过创建`PinyinHelper`对象并调用其方法,如`toHanyuPinyinStringArray...

    JAVA 汉字转换拼音

    总的来说,Java中的汉字转拼音通过pinyin4j库变得非常简单,只需要正确引入库并编写一些辅助方法,就可以轻松地在程序中实现汉字与拼音之间的转换。这在处理中文数据时非常有用,能够帮助开发出更加适应中国用户的...

    pinyin4j-2.5.0.jar_pinyin_pinyin4j-2.5.0.jar_

    pinyin4j是一个Java语言编写的开源库,专用于处理中文汉字的拼音转换,它为开发者提供了便捷的API接口,使得在Java应用中进行汉字与拼音的相互转化变得轻而易举。标题中的“pinyin4j-2.5.0.jar”即为此库的特定版本...

    Java名字获取拼音

    总结起来,Java名字获取拼音主要依赖于pinyin4j库,该库提供了方便的API,使得在Java中实现汉字到拼音的转换变得简单易行。开发者可以根据需求调整输出格式,满足各种场景下的需求。通过实践和研究提供的示例代码,...

    Flex版的汉字拼音转换工具

    总的来说,Flex版的汉字拼音转换工具结合了pinyin4j的强大功能和Flex的灵活性,为Flex开发者提供了一个便捷的汉字拼音处理工具,使得在Flex应用中实现复杂的汉字处理功能变得更加容易。在进行项目开发时,开发者可以...

    汉语转化为拼音,大写小写,pingyin4j.jar

    这个库名为pingyin4j,它解决了多音字问题,使得在编程中处理中文字符转化为拼音变得更加便捷和准确。 在汉语中,多音字是指同一个字有多个读音,根据不同的语境和词义有不同的发音。例如,“长”可以读作“cháng...

    pinyin4j jar包

    总结来说,pinyin4j是一个强大的Java库,它使得在Java环境中处理汉字转拼音的工作变得轻松高效。无论是在桌面应用、Web服务还是移动应用开发中,只要涉及到汉字与拼音的转换,pinyin4j都是一个值得信赖的工具。

    自动获取汉字的拼音简码

    在IT行业中,自动获取汉字的拼音简码是一项实用的技术,特别是在处理中文文本的搜索、排序或数据处理时。这项技术的实现通常涉及到自然语言处理(NLP)和字符编码转换。下面将详细介绍这个主题,以及如何使用...

    solr搭建(含拼音检索,三种分词器,停词器,扩展词库)

    Solr是中国开源搜索服务器Lucene的一个企业级封装,它提供了更高级别的API和服务,使得在分布式环境中构建和管理全文搜索引擎变得简单。本教程将详细讲解如何搭建Solr,并涵盖拼音检索、三种主流分词器(smartcn、IK...

    计算机软件-商业源码-利用拼音首字符序列来检索数据库.zip

    在计算机科学领域,数据库是存储和管理数据的核心工具,它使得数据的检索、更新和管理变得高效有序。本文将深入探讨一种特殊的检索技术——利用拼音首字符序列来检索数据库,这是针对中文数据的一种优化策略,尤其...

    汉语拼音基础练习题.doc

    例如,这里可能是指“得”字在句中的变音,读作“dé”。 四、给词语注音并使用隔音符号: 隔音符号用于分隔音节,如“延安”的拼音为“Yán ān”,“英”为“Yīng”,“酷爱”为“Kù ài”,“莲藕”为“Lián ...

    六年级汉语拼音复习PPT学习教案.pptx

    此外,文档还讨论了"一"和"不"的变调规律,以及"啊"的变音规则,这些都是汉语中的特有现象,需要学生特别注意。 最后,文档提供了几道练习题,以检验学生对拼音知识的理解和应用能力,例如字母表排序、音序排列、...

    GetContact

    这一功能的背后,是应用对中文字符进行拼音转换的算法支持,如Pinyin4j库在Java中的应用,或者iOS中的CFStringTransform函数,将汉字转化为拼音,再进行排序和索引。 接着,我们讨论"字母"导航的设计。这种设计借鉴...

Global site tag (gtag.js) - Google Analytics