用jpinyin实现汉字转拼音功能

一、简介

项目地址:https://github.com/stuxuhai/jpinyin

JPinyin是一个汉字转拼音的Java开源类库,在PinYin4j的功能基础上做了一些改进。

【JPinyin主要特性】
1、准确、完善的字库;
Unicode编码从4E00-9FA5范围及3007(〇)的20903个汉字中,JPinyin能转换除46个异体字(异体字不存在标准拼音)之外的所有汉字;
2、拼音转换速度快;
经测试,转换Unicode编码从4E00-9FA5范围的20902个汉字,JPinyin耗时约100毫秒。
3、多拼音格式输出支持;
JPinyin支持多种拼音输出格式:带音标、不带音标、数字表示音标以及拼音首字母输出格式;
4、常见多音字识别;
JPinyin支持常见多音字的识别,其中包括词组、成语、地名等;
5、简繁体中文转换

Jpinyin里面一共有四个类:

  • ChineseHelper.java     汉字简繁体转换类
  • PinyinFormat.java         拼音格式类
  • PinyinHelper.java          汉字转拼音类
  • PinyinResource.java    资源文件加载类

二、主要方法介绍

2.1 convertToPinyinString(String str, String separator)

/**
 * 将字符串转换成相应格式的拼音
 * @param str 需要转换的字符串
 * @param separator 拼音分隔符
 * @return 字符串的拼音
 */
public static String convertToPinyinString(String str, String separator, PinyinFormat pinyinFormat)

结果:

      String words = "和气生财";final String separator = " ";

        // hé qì shēng cái (默认格式)
        PinyinHelper.convertToPinyinString(words, separator);

2.2 convertToPinyinString(String str, String separator, PinyinFormat pinyinFormat)

/** * 将字符串转换成相应格式的拼音 * @param str 需要转换的字符串 * @param separator 拼音分隔符 * @param pinyinFormat 拼音格式:WITH_TONE_NUMBER--数字代表声调,WITHOUT_TONE--不带声调,WITH_TONE_MARK--带声调 * @return 字符串的拼音 */public static String convertToPinyinString(String str, String separator, PinyinFormat pinyinFormat)

结果:

   String str = "你好世界";
    PinyinHelper.convertToPinyinString(str, ",", PinyinFormat.WITH_TONE_MARK); // nǐ,hǎo,shì,jiè
    PinyinHelper.convertToPinyinString(str, ",", PinyinFormat.WITH_TONE_NUMBER); // ni3,hao3,shi4,jie4
    PinyinHelper.convertToPinyinString(str, ",", PinyinFormat.WITHOUT_TONE); // ni,hao,shi,jie

2.3 getShortPinyin(String str)

/**
 * 获取字符串对应拼音的首字母
 * @param str 需要转换的字符串
 * @return 对应拼音的首字母
 */
public static String getShortPinyin(String str)

结果:

    String str = "你好世界";

    PinyinHelper.getShortPinyin(str); // nhsj

2.4 convertToPinyinArray(char c)

/**
 * 将单个汉字转换为相应格式的拼音
 * @param c 需要转换成拼音的汉字
 * @return 汉字的拼音
 */
public static String[] convertToPinyinArray(char c)

结果:


String words = "和气生财";
// hé hè huó huò hú
pinyins = PinyinHelper.convertToPinyinArray(words.toCharArray()[0]);

2.5 convertToPinyinArray(char c, PinyinFormat pinyinFormat)

/**
 * 将单个汉字转换为相应格式的拼音
 * @param c 需要转换成拼音的汉字
 * @param pinyinFormat 拼音格式:WITH_TONE_NUMBER--数字代表声调,WITHOUT_TONE--不带声调,WITH_TONE_MARK--带声调
 * @return 汉字的拼音
 */
public static String[] convertToPinyinArray(char c, PinyinFormat pinyinFormat)

结果:

String words = "和气生财";
// hé hè huó huò hú
pinyins = PinyinHelper.convertToPinyinArray(words.toCharArray()[0], PinyinFormat.WITH_TONE_MARK);

2.6 hasMultiPinyin(char c)

/**
 * 判断一个汉字是否为多音字
 * @param c 汉字
 * @return 判断结果,如果是返回true,否则返回false
 */
public static boolean hasMultiPinyin(char c)

结果:

 // false
  println(PinyinHelper.hasMultiPinyin(‘李‘));

源码下载:

大部分内容参考自:http://blog.csdn.net/ekeuy/article/details/40079475?utm_source=tuicool

时间: 2024-11-05 11:48:39

用jpinyin实现汉字转拼音功能的相关文章

C#汉字转拼音(支持多音字)

阅读目录 首先在nuget引用对应的包 简单的demo 汉字转拼音类封装 源码分享 之前由于项目需要,中间需要一个汉字转拼音和首拼的功能来做查询,感觉这种功能基本已经成熟化了,于是查找了相关的代码,首先引入眼帘的是下面两篇文章 1.C# 汉字转拼音(支持GB2312字符集中所有汉字) 2.[干货]JS版汉字与拼音互转终极方案,附简单的JS拼音输入法 感谢两位博主,写的比较全也很详细,都有提供源码,大家可以参考下. 由于考虑到接口的需要,于是参考了 第一篇,文章中作者的源码基本能满足汉字转拼音的需

汉字转拼音的Java类库:JPinyin

JPinyin是一个汉字转拼音的Java开源类库,在PinYin4j的功能基础上做了一些改进. [JPinyin主要特性]1.准确.完善的字库:Unicode编码从4E00-9FA5范围及3007(〇)的20903个汉字中,JPinyin能转换除46个异体字(异体字不存在标准拼音)之外的所有汉字:2.拼音转换速度快:经测试,转换Unicode编码从4E00-9FA5范围的20902个汉字,JPinyin耗时约100毫秒.3.多拼音格式输出支持:JPinyin支持多种拼音输出格式:带音标.不带音标

汉字转拼音开源工具包Jpinyin介绍

最近要实现一个根据词语得到词语对应拼音的功能,找到了Jpinyin这个开源工具包,使用下来发现它非常强大,完全满足我的需求,下面对它做一个简单的介绍,希望能够帮助到有需要的朋友. 一.项目介绍: JPinyin是一个汉字转拼音的Java开源类库,在PinYin4j的功能基础上做了一些改进. [JPinyin主要特性] 1.准确.完善的字库: Unicode编码从4E00-9FA5范围及3007(〇)的20903个汉字中,JPinyin能转换除46个异体字(异体字不存在标准拼音)之外的所有汉字:

杨泽业:让你的网站无限可能之给你的网站增加汉字转拼音的新功能

一个网站可以无限可能,你的网站可以成就你的事业! 这不是一句空话,而是一个可行的方案. 今天泽业建站网站长杨泽业来给大家讲解一下最简单的网站功能的增加. 现在增加的是[汉字转拼音]的新功能为例,让你了解一下,你的网站是可以增加无数个功能的. 因为我在和别人交流的时候,很多人把名字发过来,居然经常不能完全正确的读出名字,这时候,就需要把汉字转为拼音了.还有时候,帮客户注册域名的时候,也必须准确无误的知道汉字的拼音,才能注册域名.所以对于我们做网络的人来说,汉字转拼音的功能经常用到. 我在站长下载里

汉字转拼音 汉字排序功能

.h文件 #import <Foundation/Foundation.h> @interface ChineseTool : NSObject /** *  汉字转拼音 * *  @param chinese         要转换的汉字 *  @param stripDiacritics 是否需要音标 * *  @return 拼音 */ + (NSString *)pinyinForChinese:(NSString *)chinese stripDiacritics:(BOOL)str

Java_开源框架_JPinyin汉字转拼音的Java开源库

本博文为子墨原创,转载请注明出处! http://blog.csdn.net/zimo2013/article/details/50039339 1.介绍 JPinyin是一个汉字转拼音的Java开源类库,在PinYin4j的功能基础上做了一些改进.[JPinyin主要特性]1.准确.完善的字库:Unicode编码从4E00-9FA5范围及3007(〇)的20903个汉字中,JPinyin能转换除46个异体字(异体字不存在标准拼音)之外的所有汉字:2.拼音转换速度快:经测试,转换Unicode编

汉字转拼音与简繁转换的Java实现

最近HanLP希望支持拼音与繁体功能,所以学习了几个开源的Java实现,优化后集成进来.stuxuhai/jpinyin原理这是GitHub上星星最多一个,主要原理就是利用一张HashTable将字与拼音一一对应起来.同时,在扫描的时候也会将当前汉字依次与后面的3个.2个.1个汉字组合,判断下是否存在多音字词组.也就是说,它最多支持4字词的多音字校正.同时,顺序扫描并且组合的话,复杂度的常数项有点高(大约是O(4n)).再乘上哈希表的复杂度,感觉并不是一个很高效的实现.词典格式jpinyin中一

Microsoft Visual Studio International Pack 1.0 SR1--关于汉字转拼音

Microsoft Visual Studio International Pack 1.0 SR1————微软的一个类库 地址:http://www.microsoft.com/zh-cn/download/details.aspx?id=15251 Visual Studio International Pack 包含一组类库,该类库扩展了.NET Framework对全球化软件开发的支持.使用该类库提供的类,.NET 开发人员可以更方便的创建支持多文化多语言的软件应用.SR1 包含对 Ja

java实现将汉字转为拼音

有时候为了方便操作程序的开发,需要将汉字转为拼音等操作.下面这个是自己结合网上的资料,加上自己在公司项目中的亲自实践.完整的实现了将汉字转为拼音的操作.这个Demo只是负责将其转换,在main方法中测试,在实际需要中,只需要调用这个类中的方法即可.本人也是在学习中总结,欢迎各位大神拍砖指教,本人邮箱:[email protected].转载本博客时请在文章明显位置标明文章出处(itRed的博客:http://www.cnblogs.com/itred). 首先贴出测试结果: 测试参数: 汉字转换