`
jgsj
  • 浏览: 1051272 次
文章分类
社区版块
存档分类
最新评论

Android Java汉字转拼音总结

 
阅读更多

转载请表明出处:http://blog.csdn.net/lmj623565791/article/details/23187701

开发过程中有时候会遇到使用拼音模糊搜索等功能(典型的就是Android通讯录了),这时就需要汉字能够转化为拼音。


1、Android系统的通讯录也实现了拼音搜索,所以我们可以偷个懒,直接拿Android系统中的实现类来实现这个功能。

sdk\sources\android-2.3.3-gingerbread-src\com\android\internal\util\HanziToPinyin.java

该类我们无法直接获取实例或者反射访问,不过我们可以直接把源码拷入自己的项目中,然后使用。

概览:

简单看一下,就提供了一个get(Sting)方法供使用。

使用方式:

public void testHanziToPinyin()
	{
		ArrayList<Token> list = HanziToPinyin.getInstance().get(
		"单赵 钱 孙 李 周 吴 郑 王冯 陈 褚 卫 蒋 沈 韩 杨 朱");
		for (Token token : list)
		{
			System.out.print(token.source + " , " + token.target + " , " + token.type);
			System.out.println();
		}
	}
输出结果:


简单解释一下:HanziToPinyin是一个单例,获得该类实例后,get方法传入一个字符串,然后会对每个字符串的每个字符进行解析,解析结果存入Token中,

token.source=源 ;token.target=结果,token.type=2(也就是 public static final int PINYIN = 2; 封装的常量)


2、使用Pinyin4j

首先去http://pinyin4j.sourceforge.net/ 下载一个jar包。

主要的几个类:

PinyinHelper 调用方法的核心类

HanyuPinyinOutputFormat 输出格式,设置HanyuPinyinCaseType(大小写),HanyuPinyinToneType(声调的方式),HanyuPinyinVCharType(V的输出方式)

使用方式:

String str = "单赵钱孙李周吴郑王冯陈褚卫abc";
		HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
		format.setCaseType(HanyuPinyinCaseType.UPPERCASE);
		format.setToneType(HanyuPinyinToneType.WITH_TONE_NUMBER);
		for(int i = 0 ; i < str.length() ; i++)
		{
			char c = str.charAt(i);
			
			String[] vals = PinyinHelper.toHanyuPinyinStringArray(c, format);
			System.out.print(Arrays.toString(vals));
		}

输出结果:对于非汉字输出的是返回null

[DAN1, CHAN2, SHAN4][ZHAO4][QIAN2][SUN1][LI3][ZHOU1][WU2][ZHENG4][WANG2, WANG4][FENG2, PING2][CHEN2][CHU3, ZHU3][WEI4]nullnullnull

附上一张官网的图,关于各种格式组合的结果:

Some combinations of these three output formats are forbidden. For example, '吕'

LOWERCASE Combination WITH_U_AND_COLON WITH_V WITH_U_UNICODE WITH_TONE_NUMBER WITHOUT_TONE WITH_TONE_MARK
lu:3 lv3 lü3
lu: lv
Exception Exception

UPPERCASE Combination WITH_U_AND_COLON WITH_V WITH_U_UNICODE WITH_TONE_NUMBER WITHOUT_TONE WITH_TONE_MARK
LU:3 LV3 LÜ3
LU: LV
Exception Exception


我附上:HanziToPinyin.java以及Pinyin4J.jar供找不到源码或者无法正常下载的亲们下载,下载地址:http://download.csdn.net/detail/lmj623565791/7161713。











分享到:
评论

相关推荐

    java汉字转拼音,android汉字转拼音,汉字转拼音首字母,汉字转ASCII

    以上就是关于“java汉字转拼音,android汉字转拼音,汉字转拼音首字母,汉字转ASCII”的技术要点。在实际应用中,根据需求选择合适的转换方式,并注意处理可能出现的异常情况,如多音字、非ASCII字符等。在处理大量...

    Android 汉字转拼音总结

    总的来说,Android Java汉字转拼音是一个实用的功能,通过利用如Pinyin4j这样的第三方库,开发者可以轻松实现这个功能,提升应用的用户体验。在实际应用中,根据具体需求选择合适的转换策略和优化手段,可以使汉字转...

    Android汉字转拼音例子

    在"Android汉字转拼音例子"中,开发者利用了一个第三方库来实现这个功能。接下来,我们将深入探讨这个主题。 1. **汉字与拼音的关系** 汉字是中国传统的书面文字,每个汉字都有其对应的拼音,拼音是汉字的拉丁化...

    Android实现汉字转拼音(支持多音)

    - Pinyin4j:这是一个Java库,广泛用于Java和Android项目,提供汉字转拼音的功能。它基于Java的CC-CEDICT词典,可以处理多音字。在Android中,可以通过jniLibs或者AAR格式引入。 - Android-Pinyin4j:这是Pinyin4j...

    android汉字转拼音

    2. **Pinyin4j库**:虽然Android系统本身有处理汉字转拼音的能力,但在应用开发中,开发者也常使用第三方库如Pinyin4j,这是一个Java库,可以方便地处理汉字到拼音的转换。不过,这个项目没有依赖Pinyin4j,而是直接...

    android 汉字转拼音包

    "android 汉字转拼音包"正是一款专为此目的设计的工具。这个库可以帮助开发者轻松地处理汉字与拼音之间的转换,提高应用的用户体验,尤其是在进行模糊搜索、语音输入支持或者对非拉丁字母输入进行处理时。 在...

    android 汉字转拼音

    "android 汉字转拼音"是这样一个功能,它可以将中文字符转化为它们的拼音表示。在这个项目中,我们有两个核心文件:`HanziToPinyin.java`和`HanziToPinyinTest.java`。 `HanziToPinyin.java`通常包含一个类,这个类...

    Android汉字转拼音

    这里我们关注的焦点是“Android汉字转拼音”技术,这主要依赖于两个关键元素:`HanziToPinyin` 类和 `Pinyin4J.jar` 库。 `HanziToPinyin` 类通常是一个自定义实现,用于处理汉字到拼音的转换。这个类可能会包含一...

    Android汉字转拼音Demo

    这个"Android汉字转拼音Demo"就是这样一个示例项目,它演示了如何在Android应用中实现汉字到拼音的转换。这个过程通常涉及到第三方库的使用,本例中采用的是`pinyin4j.jar`。 `pinyin4j.jar`是一个Java库,专门用于...

    java安卓android汉字转拼音中文转拼音pinyin4j简化精简版

    java安卓android汉字转拼音中文转拼音pinyin4j简化精简版. 网上流传的有180KB,太大了,对于android开发来说。我精简了很多无关内容,收录常用汉字大约2万个,完全够用了,还专门写了一个helper类,直接调用这个...

    Android 汉字转拼音

    主要就是从源码(Android 5.0)里拷贝 HanziToPinyin.java 和 Transliterator.java 这两个文件过来。 Android 旧版的 HanziToPinyin.java 有点不一样,旧版的把编码都写进去这个文件,新版的是引用底层库。

    Android-JavaAndroid中文转拼音稳如狗

    总之,`Android-JavaAndroid中文转拼音稳如狗`项目为Android开发者提供了一种可靠的中文转拼音解决方案,利用Java和第三方库`pinyin4j`,确保了在处理中文字符时的稳定性和效率。通过深入理解和运用这些技术,我们...

    汉字转拼音jar包_pinyin4j(java)

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

    Android中文转拼音所用到的jar

    在这种情况下,"Android中文转拼音所用到的jar" 提供了必要的工具和库来实现这一功能。这个压缩包包含两个关键资源:`pinyin4j-2.5.0.jar` 和 `HanziToPinyin.java`。 1. **pinyin4j-2.5.0.jar**: `pinyin4j` 是一...

    Android中文按拼音排序

    在Java和Android中,我们可以使用Pinyin4j、HanLP等第三方库,或者使用Android内置的`PinYinHelper`类(如果API等级支持)来转换汉字到拼音。 1. **Pinyin4j** 是一个流行的Java库,可以处理汉字到拼音的转换。使用...

    Android汉字转换成对应的拼音

    总的来说,Android中利用"Pinyin4j"库实现汉字转拼音是一个相对简单的过程,只需适当地配置输出格式,即可满足不同场景下的需求。这个功能在很多应用中都有其价值,如搜索引擎优化、拼音输入法、语音识别等。通过...

    汉字转拼音常用的工具类

    这个库不仅适用于Java桌面应用,也可以在Android平台上运行,极大地简化了汉字转拼音的开发工作。 这三个工具类和库各有特点,适应不同的应用场景。`PinYinUtil.java`适用于快速实现基础的拼音转换功能,而`...

Global site tag (gtag.js) - Google Analytics