Java实现将汉字转化为汉语拼音的方法
本文实例讲述了Java实现将汉字转化为汉语拼音的方法。分享给大家供大家参考,具体如下:
网上乱转,偶然看到一个很有意思的小工具,名字叫pinyin4j,可以把汉字转换为汉语拼音,利用他的话再配合上lucene、中文分词就可以做出类似google那种输入汉语拼音进行全文检索的功能了。实现的代码如下
packagepinyin4j;
importnet.sourceforge.pinyin4j.PinyinHelper;
importnet.sourceforge.pinyin4j.format.HanyuPinyinCaseType;
importnet.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
importnet.sourceforge.pinyin4j.format.HanyuPinyinToneType;
importnet.sourceforge.pinyin4j.format.HanyuPinyinVCharType;
importnet.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;
publicclasspinyin4jTest{
publicstaticvoidmain(Stringargsp[]){
try{
Stringoutput=pinyin4jTest.CNToPinyin("你和你好",null);
System.out.println(output);
}catch(BadHanyuPinyinOutputFormatCombinatione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
/**
*@parminputCN输入的中文字符串
*@parmseg输出汉语拼音时的分隔符
*
*HanyuPinyinOutputFormat提供了几种输出模式
*HanyuPinyinCaseType:设定输入的结果是大写英文还是小写英文LOWERCASE:小写UPPERCASE:大写
*HanyuPinyinToneType:输出是否表明音调和重音WITH_TONE_NUMBER:标明音调如YE11-4表示1-4声
*WITHOUT_TONE:不显示音调符HanyuPinyinVCharType:输出要用何种的拼音编码
*/
publicstaticStringCNToPinyin(StringinputCN,Stringseg)
throwsBadHanyuPinyinOutputFormatCombination{
char[]inputArray=inputCN.toCharArray();
if(seg==null)
seg="";
HanyuPinyinOutputFormatformat=newHanyuPinyinOutputFormat();
format.setCaseType(HanyuPinyinCaseType.LOWERCASE);
format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
format.setVCharType(HanyuPinyinVCharType.WITH_V);
Stringoutput="";
String[]temp=newString[10];
for(inti=0;i<inputArray.length;i++){
temp=PinyinHelper.toHanyuPinyinStringArray(inputArray[i],format);
//若输入的汉字为多音字则会将不同的读音依次放入temp[]中,若不是多音字则只有temp[0]中有值
for(intj=0;j<temp.length;j++){
output+=temp[j]+seg;
}
}
returnoutput;
}
}
希望本文所述对大家Java程序设计有所帮助。