本文主要是介绍汉字与全拼的转换!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在实际项目中我们经常需要将汉字转换为中文全拼,以便搜索等功能。
<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());}
}
/ **
输出结果:
wzhongshuairenlminugongchekguoy
wZhongsHuaiRenlMinuGongcHekGuoy
wzshirlmugchkgy
WZSHIRLMUGCHKGY
* /
这篇关于汉字与全拼的转换!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!