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程序设计有所帮助。