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.exception.BadHanyuPinyinOutputFormatCombination;
import java.io.UnsupportedEncodingException;
/**
* 拼音工具
*
* @author leizhimin 2009-7-15 15:26:21
*/
public class PinyinToolkit {
/**
* 获取汉字串拼音首字母,英文字符不变
*
* @param chinese 汉字串
* @return 汉语拼音首字母
*/
public static String cn2FirstSpell(String chinese) {
StringBuffer pybf = new StringBuffer();
char[] arr = chinese.toCharArray();
HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
for (int i = 0; i < arr.length; i++) {
if (arr[i] > 128) {
try {
String[] _t = PinyinHelper.toHanyuPinyinStringArray(arr[i], defaultFormat);
if (_t != null) {
pybf.append(_t[0].charAt(0));
}
} catch (BadHanyuPinyinOutputFormatCombination e) {
e.printStackTrace();
}
} else {
pybf.append(arr[i]);
}
}
return pybf.toString().replaceAll("\\W", "").trim();
}
/**
* 获取汉字串拼音,英文字符不变
*
* @param chinese 汉字串
* @return 汉语拼音
*/
public static String cn2Spell(String chinese) {
StringBuffer pybf = new StringBuffer();
char[] arr = chinese.toCharArray();
HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
for (int i = 0; i < arr.length; i++) {
if (arr[i] > 128) {
try {
pybf.append(PinyinHelper.toHanyuPinyinStringArray(arr[i], defaultFormat)[0]);
} catch (BadHanyuPinyinOutputFormatCombination e) {
e.printStackTrace();
}
} else {
pybf.append(arr[i]);
}
}
return pybf.toString();
}
public static void main(String[] args) throws UnsupportedEncodingException {
String x = "嘅囧誰說壞學生來勼髮視頻裆児";
System.out.println(cn2FirstSpell(x));
System.out.println(cn2Spell(x));
}
}
运行结果:
kjsshxsljfspde
kaijiongshuishuohuaixueshenglaijiufashipindanger
Process finished with exit code 0
分享到:
相关推荐
PinYin4jUtils PinYin4j使用案例
Pinyin4j是一个功能强悍的汉语拼音工具包,是sourceforge.net上的一个开源项目。 包里面有 pinyin4j.zip pinyin4j.jar 两种
赠送jar包:pinyin4j-2.5.0.jar; 赠送原API文档:pinyin4j-2.5.0-javadoc.jar; 赠送源代码:pinyin4j-2.5.0-sources.jar; 赠送Maven依赖信息文件:pinyin4j-2.5.0.pom; 包含翻译后的API文档:pinyin4j-2.5.0-...
Pinyin4j的基本用法 - 玄机逸士的专栏 - 博客频道 - CSDN.NET.html )
pinyin4j-2.5.1.jar、汉字转拼音 pinyin4j-2.5.1.jar、汉字转拼音 pinyin4j-2.5.1.jar、汉字转拼音
pinyin4j(解决多音字问题源码),pinyin4j源码没有解决多音字的问题,这是一个解决能解决多音字的pinyin4j源码,但是里面的词库不是很全,你可以根据自己的需要进行添加。
Pinyin4j的基本用法 1. 简单介绍 有时候,需要将汉字编程对应的拼音,以方便数据的处理。比如在Android手机应用的开发上,要查询联系人的姓名,通常都是用拼音进行查询的。比如要查询“曹孟德”,就可以输入“cmd”...
里面包含pinyin4j-2.5.0.jar和使用示例PinyinUtils.java,可以帮助使用者快速理解并使用pinyin4j-2.5.0.jar实现java汉字转拼音或拼音首字母
Pinyin4j简单使用教程.docx,Pinyin4j简单使用教程.docx
Java pinyin4j.jar中文转拼音 详细可查看我的博客https://me.csdn.net/Extraordinarylife 中《Java pinyin4j.jar中文转拼音 》
Pinyin4j简单使用教程
pinyin4j 工具类的jar包,基于maven的配置 <groupId>net.sourceforge.pinyin4j</groupId> <artifactId>pinyin4j <version>2.5.0 pinyin4j-2.5.0.jar pinyin4j-2.5.0.pom
pinyin4j最新jar包,包含反编译过的jar包源码文件,使用说明必看.
pinyin4j-2.5.0.jar
Java 中文排序 使用pinyin4j组件
NULL 博文链接:https://1358440610-qq-com.iteye.com/blog/1850618
pinyin4j-2.5.0.jar PinYin4jUtils.java PinYin4jUtils.java
Pinyin4j是一个流行的Java库,支持中文字符和拼音之间的转换,拼音输出格式可以定制,在项目中经常会遇到需求用户输入汉字后转换为拼音的场景,这时候Pinyin4j就可以派上用场