用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
/**
* 将单个汉字转换为相应格式的拼音
* @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
用jpinyin实现汉字转拼音功能的更多相关文章
- Android环境下hanlp汉字转拼音功能的使用介绍
由于项目需要在Android手机设备上实现汉字转拼音功能(支持多音字),于是首先想到了Pinyin4j+多音字映射对照表的实现方案,并在项目中试用了一段时间,发现数据量大时,其耗时非常严重.后来寻找其 ...
- C#汉字转拼音(支持多音字)
之前由于项目需要,中间需要一个汉字转拼音和首拼的功能来做查询,感觉这种功能基本已经成熟化了,于是查找了相关的代码,首先引入眼帘的是下面两篇文章 1.C# 汉字转拼音(支持GB2312字符集中所有汉字) ...
- js中文汉字按拼音排序
JavaScript 提供本地化文字排序,比如对中文按照拼音排序,不需要程序显示比较字符串拼音. String.prototype.localeCompare 在不考虑多音字的前提下,基本可以完美实现 ...
- 汉字转拼音的Java类库:JPinyin
JPinyin是一个汉字转拼音的Java开源类库,在PinYin4j的功能基础上做了一些改进. [JPinyin主要特性]1.准确.完善的字库:Unicode编码从4E00-9FA5范围及3007(〇 ...
- 汉字转拼音,TinyPinyin、Pinyin4j与JPinyin哪个库更快
1. 介绍 本文对TinyPinyin.Pinyin4j与JPinyin三个汉字转拼音库的用法.测试代码及转换的结果做一个简单的总结. TinyPinyin 适用于Java和Android的快速.低内 ...
- 汉字转拼音开源工具包Jpinyin介绍
最近要实现一个根据词语得到词语对应拼音的功能,找到了Jpinyin这个开源工具包,使用下来发现它非常强大,完全满足我的需求,下面对它做一个简单的介绍,希望能够帮助到有需要的朋友. https://gi ...
- JAVA实现汉字转换为拼音 pinyin4j/JPinyin
在项目中经常会遇到需求用户输入汉字后转换为拼音的场景,比如说通讯录,就会要求按名字首字符发音排序,如果自己写实现这方面的功能是个很好大的工程,还好网上有公开的第三方jar支持转换,结合网上很多前辈的代 ...
- 汉字转拼音,TinyPinyin、Pinyin4j与JPinyin哪个库更快
1. 介绍 本文对TinyPinyin.Pinyin4j与JPinyin三个汉字转拼音库的用法.测试代码及转换的结果做一个简单的总结. TinyPinyin 适用于Java和Android的快速.低内 ...
- 文件一键上传、汉字转拼音、excel文件上传下载功能模块的实现
----------------------------------------------------------------------------------------------[版权申明: ...
随机推荐
- Java编程的逻辑 (1) - 数据和变量
本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http: ...
- hdu 5053 (2014上海网赛L题 求立方和)
题目大意:给你L到N的范围,要求你求这个范围内的所有整数的立方和. Sample Input2 //T1 32 5 Sample OutputCase #1: 36Case #2: 224 # inc ...
- 【LOJ】#2230. 「BJOI2014」大融合
题解 我现在真是太特么老年了 一写数据结构就颓废,难受 这题就是用lct维护子树 ???lct怎么维护子树 这样想,我们给每个点记录虚边所在的子树大小,只发生在Access和link的时候 这样的话我 ...
- Spark中hashshuffle与sortshuffle
在spark1.2以上的版本中,默认shuffle的方式已经变成了sortshuffle(在spark.shuffle.manager修改org.apache.spark.shuffle.sort.H ...
- jqplot利用ajax传值画图表(利用jsp连接数据库)
实现从数据库中取得数据,再把数据传给画jqplot的jsp界面!jsp界面再进行画图,画出我们所需的图表! 有两个jsp界面,7-12.jsp用来连接数据库,并把数据传给ajaxauto.jsp,aj ...
- Gift动图分解小工具
gif 动图分解小工具 Overview 因为自己有时候需要将一些gif图片分解,但是没有在网上找到合适的工具,所有就自己写了一个,在这里与大家分享,其实实现很简单,是通过C#实现的.文章下方有下载链 ...
- 【BZOJ 4569】 4569: [Scoi2016]萌萌哒 (倍增+并查集)
4569: [Scoi2016]萌萌哒 Time Limit: 10 Sec Memory Limit: 256 MBSubmit: 865 Solved: 414 Description 一个长 ...
- android防止按钮连续点击方案之AOP
转载请标明出处http://www.cnblogs.com/yxx123/p/6675567.html 防止连续点击的实现方式有很多种,比如,在所有的onclick里面加上防多次点击的代码,或者定义一 ...
- pop3_用Java发送图文并茂的HTML邮件
package com.syj; import java.io.ByteArrayOutputStream; import java.io.FileInputStream; import java.i ...
- 使用 IntraWeb (16) - 基本控件之 TIWList、TIWListbox、TIWComboBox、TIWOrderedListbox
TIWList //列表; 它对应 Html 中的 OL.LI(某些选项下会用表格模拟); TIWListbox 和 TIWComboBox 则对应 Html 在的 Option TIWListbox ...