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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。