汉字与全拼的转换!

来源:互联网 发布:如何保证云计算安全 编辑:程序博客网 时间:2024/04/20 23:47
在实际项目中我们经常需要将汉字转换为中文全拼,以便搜索等功能。
<font>涉及到的罐子</font>
 <dependency>        <span style="white-space:pre"></span><groupId>net.sourceforge</groupId>        <span style="white-space:pre"></span><artifactId>pinyin4j</artifactId>        <span style="white-space:pre"></span><version>2.5.0</version>        </dependency>
闲话少说,直接看代码:
包com.ilucky.pinyin;进口net.sourceforge.pinyin4j.PinyinHelper;进口net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;进口net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;进口net.sourceforge.pinyin4j.format.HanyuPinyinToneType;进口net.sourceforge.pinyin4j.format.HanyuPinyinVCharType;进口net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;/ ** * @author IluckySi * @Since 20141104 * /公共类TestPinYin {/ ** *将字符串中的汉字替换为汉字的全拼。 * @参数海峡 * @返回字符串 * /公共静态字符串getPinYin(字符串str){字符串结果=“”;炭[] = t1的str.toCharArray();HanyuPinyinOutputFormat格式=新HanyuPinyinOutputFormat();format.setCaseType(HanyuPinyinCaseType.LOWERCASE);format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);format.setVCharType(HanyuPinyinVCharType.WITH_V);尝试{的for(int i = 0; I <t1.length;我++){//判断是不是汉字。如果(Character.toString(T1 [I])匹配(“[\\ u4E00  -  \\ u9FA5] +”)){结果+ = PinyinHelper.toHanyuPinyinStringArray(t1的[i]于,格式)[0];}其他{结果+ = Character.toString(t1的[I]);}}}赶上(BadHanyuPinyinOutputFormatCombination E){e.printStackTrace();}返回结果;}/ ** *将字符串中的汉字替换为汉字的全拼,并且每个汉字全拼的首字母大写。 * @参数海峡 * @返回字符串 * /公共静态字符串getPinYin2(字符串str){字符串结果=“”;的char [] charArray = str.toCharArray();HanyuPinyinOutputFormat格式=新HanyuPinyinOutputFormat();format.setCaseType(HanyuPinyinCaseType.LOWERCASE);format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);format.setVCharType(HanyuPinyinVCharType.WITH_V);尝试{的for(int i = 0; I <charArray.length;我++){//判断是不是汉字。如果(Character.toString(charArray [I])匹配(“[\\ u4E00  -  \\ u9FA5] +”)){串老= PinyinHelper.toHanyuPinyinStringArray(charArray [I],格式)[0];结果+ = old.substring(0,1)的ToString()与toUpperCase()+ old.substring(1)。}其他{结果+ = Character.toString(charArray [I]);}}}赶上(BadHanyuPinyinOutputFormatCombination E){e.printStackTrace();}返回结果;}/ ** *将字符串中的汉字替换为汉字的首字母。 * @参数海峡 * @返回字符串 * /公共静态字符串getPinYinHeadChar(字符串str){字符串结果=“”;的for(int i = 0; I <str.length();我++){焦炭字= str.charAt(I);//判断是不是汉字。的String [] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(字);如果(pinyinArray!= NULL){结果+ = pinyinArray [0] .charAt(0);}其他{结果+ =字;}}返回结果;}公共静态无效的主要(字串[] args){字符串str =“W中s华我人升民ü共Ç和ķ国Y”;//将字符串中的汉字替换为汉字的全拼。的System.out.println(getPinYin(STR));//将字符串中的汉字替换为汉字的全拼,并且每个汉字全拼的首字母大写。的System.out.println(getPinYin2(STR));//将字符串中的汉字替换为汉字全拼的首字母。的System.out.println(getPinYinHeadChar(STR));//将字符串中的汉字替换为汉字全拼的首字母,并且大写。的System.out.println(getPinYinHeadChar(STR).toUpperCase());}}/ **输出结果:wzhongshuairenlminugongchekguoywZhongsHuaiRenlMinuGongcHekGuoywzshirlmugchkgyWZSHIRLMUGCHKGY* /

0 0