Java汉字转拼音工具类完整代码实例
添加依赖
com.belerweb pinyin4j 2.5.1
工具类代码:
publicclassPinYinUtils{ publicstaticHanyuPinyinOutputFormatPINYIN_FORMAT; static{ PINYIN_FORMAT=newHanyuPinyinOutputFormat(); /** *大小写设置 *LOWERCASE:小写 *UPPERCASE:大写 */ PINYIN_FORMAT.setCaseType(HanyuPinyinCaseType.LOWERCASE); /** *输出音标设置 * *WITH_TONE_MARK:直接用音标符(VCharType必须设置WITH_U_UNICODE,否则会抛出异常) *WITH_TONE_NUMBER:1-4数字表示音标 *WITHOUT_TONE:没有音标 */ PINYIN_FORMAT.setToneType(HanyuPinyinToneType.WITHOUT_TONE); /** *特殊音符ü的设置 *WITH_U_AND_COLON:用u表示(没有设置默认用u表示) *WITH_V:用v表示 *WITH_U_UNICODE:用ü表示 */ PINYIN_FORMAT.setVCharType(HanyuPinyinVCharType.WITH_U_UNICODE); } /** *取汉字的拼音首字母 *@paramchinese *@return */ publicstaticStringtoFirstPinYin(Stringchinese){ StringBuilderresult=newStringBuilder(); //将字符串转成字符数组 char[]chars=chinese.toCharArray(); try{ for(charc:chars){ //是中文则进行转换 if(String.valueOf(c).matches("[\u4e00-\u9fa5]+")){ String[]pinyinStr=PinyinHelper.toHanyuPinyinStringArray(c,PINYIN_FORMAT); result.append(pinyinStr[0].charAt(0));//取每个中文的第一个拼音字母 }else{ result.append(c); } } }catch(BadHanyuPinyinOutputFormatCombinationbadHanyuPinyinOutputFormatCombination){ badHanyuPinyinOutputFormatCombination.printStackTrace(); } returnresult.toString(); } /** *汉字转拼音小写 *@paramchinese *@return */ publicstaticStringtoPinYin(Stringchinese){ //创建返回对象 StringBuilderresult=newStringBuilder();//方法调用的时候新建,对象没有共享,不会有线程安全问题。 //将字符串转成字符数组 char[]chars=chinese.toCharArray(); try{ for(charc:chars){ //是中文则进行转换 if(String.valueOf(c).matches("[\u4e00-\u9fa5]+")){ String[]pinyinStr=PinyinHelper.toHanyuPinyinStringArray(c,PINYIN_FORMAT); //result.append(pinyinStr[0].charAt(0));//取每个中文的第一个拼音字母 result.append(pinyinStr[0]); }else{ result.append(c); } } }catch(BadHanyuPinyinOutputFormatCombinationbadHanyuPinyinOutputFormatCombination){ badHanyuPinyinOutputFormatCombination.printStackTrace(); } returnresult.toString(); } /** *汉字转拼音每个字符串的第一个字母大写其余小写 *@paramchinese *@return */ publicstaticStringtoUpperStringsFirstCharPinYin(Stringchinese){ //创建返回对象 StringBuilderresult=newStringBuilder();//方法调用的时候新建,对象没有共享,不会有线程安全问题。 //将字符串转成字符数组 char[]chars=chinese.toCharArray(); try{ for(charc:chars){ //是中文则进行转换 if(String.valueOf(c).matches("[\u4e00-\u9fa5]+")){ String[]pinyinStr=PinyinHelper.toHanyuPinyinStringArray(c,PINYIN_FORMAT); //result.append(pinyinStr[0].charAt(0));//取每个中文的第一个拼音字母 Stringc1=String.valueOf(pinyinStr[0]); result.append(c1.substring(0,1).toUpperCase()).append(c1.substring(1)); }else{ result.append(c); } } }catch(BadHanyuPinyinOutputFormatCombinationbadHanyuPinyinOutputFormatCombination){ badHanyuPinyinOutputFormatCombination.printStackTrace(); } returnresult.toString(); } publicstaticvoidmain(String[]args){ //测试StringBuilder是否有线程安全问题 Stringstr="拼音工具lv"; StringpinYin=toUpperStringsFirstCharPinYin(str); System.out.println(pinYin); } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。