`
rsljdkt
  • 浏览: 454354 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

java中实现汉语拼音排序

    博客分类:
  • Java
阅读更多

Java提供的Collator拼音排序中,发现“怡”字总排在最后解决方案如下:

实现Comparator接口,利用pinyin4j将要比较的字符串转化成相应的拼音字符串,然后再比较。

 

所需jar包:pinyin4j-2.5.0.jar;下载地址:http://pinyin4j.sourceforge.net/


import java.util.Arrays;
import java.util.Comparator;
import net.sourceforge.pinyin4j.PinyinHelper;

public class PinYinSort {
	
	public static void main(String[] args) {
		
		String[] arr={ "王二六","张三", "李四", "王五","赵六", "JAVA", "123","怡情"};
		Arrays.sort(arr,new ComparatorPinYin());
		for (String string : arr) {
			System.out.println(string);
		}
	}
	/**
	 * 功能:实现汉语拼音序比较
	 *
	 */
	static  class ComparatorPinYin implements Comparator<String>{
		@Override
		public int compare(String o1, String o2) {
			return ToPinYinString(o1).compareTo(ToPinYinString(o2));
		}
		
		private String ToPinYinString(String str){
			
			StringBuilder sb=new StringBuilder();
			String[] arr=null;
			
			for(int i=0;i<str.length();i++){
				arr=PinyinHelper.toHanyuPinyinStringArray(str.charAt(i));
				if(arr!=null && arr.length>0){
					for (String string : arr) {
						sb.append(string);
					}
				}
			}
			
			return sb.toString();
		}
		
	}
}


 

排序结果:

JAVA
123
李四
王二六
王五
怡情
张三
赵六
 

 

3
1
分享到:
评论

相关推荐

    Java编程实现中英混合字符串数组按首字母排序的方法

    本文实例讲述了Java编程实现中英混合字符串数组按首字母排序的方法。分享给大家供大家参考,具体如下: 在Java中对于字符串数组的排序,我们可以使用Arrays.sort(String[])方法很便捷的进行排序。例如: String[]...

    Java名字获取拼音

    "Java名字获取拼音"这个主题就是关于如何在Java中实现这一功能。这里我们将深入探讨如何利用开源库pinyin4j来完成汉字到拼音的转换,并提供一个完整的使用示例。 pinyin4j是一个强大的Java库,专门用于处理汉字和...

    中文转换为拼音java

    这些库通常会基于Unicode字符集的汉语拼音映射关系进行转换。 1. **Pinyin4j库**: Pinyin4j是一个Java库,用于处理中文字符和拼音之间的转换。它能够处理多音字,并提供声调标记的选项。使用Pinyin4j,你可以如下...

    java 取汉字拼音工具包

    2. **声调处理**:汉语拼音有四个声调,工具包应能正确识别并处理这些声调。在某些情况下,声调可能被忽略,只保留不带声调的基本拼音。 3. **多音字处理**:许多汉字有不同的读音,这取决于它们在句子中的上下文。...

    Android 中英文混合排序

    在"Android 中英文混合排序"这个主题中,我们需要理解如何利用Java(Android的主要编程语言)中的排序机制,结合中文转拼音的方法,来实现这一功能。下面我们将详细探讨这一过程。 首先,Android系统基于Java虚拟机...

    Java汉字转成汉语拼音工具类

    总结来说,这个Java汉字转成汉语拼音工具类为处理中文提供了极大的便利,通过合理利用pinyin4j库,可以有效地实现汉字到拼音的转换,并且支持多种格式和大小写的变化。在实际开发中,可以将这个工具类作为基础组件,...

    中文首字母排序java代码

    根据提供的信息,我们可以了解到这段Java代码的主要目的是将中文字符转换为对应的汉语拼音首字母。这种方法在处理中文排序、检索等场景时非常有用。下面将详细解释该代码的工作原理及其应用场景。 ### 代码逻辑分析...

    基于java的中文转拼音库 pinyin4j.zip

    Pinyin4j是由Barry DeZeng开发的一个Java库,它能够将汉字转换为对应的汉语拼音,支持声调标注,同时也可以处理多音字问题。这个库的设计简洁且高效,使得开发者能够方便地在Java项目中集成中文转拼音的功能。 二、...

    java汉字转拼音代码+多音字词汇表

    在某些应用场景中,我们可能只需要汉字的首字母,如搜索引擎关键词的简写或者拼音排序。工具类可能会有一个方法,可以快速地将汉字转换为首字母形式,如汉字"中国"转换为"Zh"。 4. **性能优化**: 能够处理上万个...

    中文姓名转换为拼音jar包

    标题提到的"中文姓名转换为拼音jar包"是一个Java应用程序,它提供了将中文字符转化为对应的汉语拼音的功能。这个jar包可能包含了一个或多个类库,用于高效地实现这一转换过程。 首先,我们要理解汉语拼音的基本概念...

    java汉字与拼音的转换

    7. **实际应用**:Pinyin4j在许多实际场景中有广泛应用,如关键词提取、关键词搜索、拼音排序、拼音输入法等。 总之,Java中的汉字与拼音转换,尤其是多音字处理,可以借助Pinyin4j库高效实现。理解并掌握其基本...

    汉字转换成拼音的java类库

    在Java编程环境中,有时我们需要将汉字转换为拼音,以便进行各种文本处理操作,例如搜索、排序或生成语音。"汉字转换成拼音的java类库"就是为此目的设计的一个工具,它提供了一种方便的方式来实现这一功能。这个类库...

    displaytag中文排序问题解决办法

    Java中的`String`对象在进行比较时,默认是基于Unicode的字典顺序,这可能导致中文字符按照其Unicode值而非汉语拼音或笔画顺序排序。对于中文来说,我们通常期望按照汉字的拼音或笔画来排序,而不是Unicode值。 ...

    汉字转拼音jar包_pinyin4j(java)

    在实际应用中,`pinyin4j`可以用于各种场景,比如关键词提取、拼音排序、模糊搜索、拼音首字母快速导航等。这个库因其易用性和强大的功能,在Java和Android开发者中得到了广泛应用。 通过以上介绍,你应该对`pinyin...

    PB 读取汉语拼音的首字母(源码),用处很大

    标题中的“PB 读取汉语拼音的首字母”指的是在PowerBuilder(PB)环境中实现一个功能,该功能能够从汉字中提取出汉语拼音的首字母。这个功能在处理中文数据时非常有用,尤其是在进行关键词搜索、拼音排序或者构建...

    java 获取拼音源文件

    在Java编程语言中,获取汉字的拼音是一项常见的需求,特别是在处理中文文本的搜索、排序或者信息提取时。本文将深入探讨如何使用Java来获取汉字的拼音,并基于提供的压缩包文件"PinYin"来解析其内容,理解源代码实现...

    取拼音首字母,第三方

    这些库能够将中文字符转换为对应的汉语拼音,然后我们从中提取首字母。 以Python的`pypinyin`库为例,使用该库可以这样实现取拼音首字母的功能: ```python from pypinyin import pinyin, lazy_pinyin, Style def...

    java汉字转拼音字头-代码类(通用版)

    在`PinYin`类中,通过静态数组`keys`存储了所有汉语拼音的基本单位,这些基本单位涵盖了汉语拼音的所有声母和韵母组合。当需要将汉字转换为拼音时,程序会利用某种方式(如第三方库或自定义算法)将汉字映射到相应的...

    安卓Android源码——带有拼音首字母排序的listview.zip

    首先,拼音首字母排序是为了解决中文姓名或词汇按汉语拼音的首字母顺序排列的问题。在Android系统中,由于默认的排序方式是基于Unicode编码,不适用于中文字符,因此需要自定义排序逻辑。这个源码示例可能会展示如何...

    android根据字母排序的城市列表

    为了实现字母排序,我们需要对城市名称进行预处理,按照汉语拼音的首字母进行排序。 1. **数据结构与排序**: - 数据存储:城市数据通常存储在数据库(如SQLite)或JSON文件中,每个城市包含名称等属性。我们需要...

Global site tag (gtag.js) - Google Analytics