java拼音_JAVA中拼音工具类

packageutils;importnet.sourceforge.pinyin4j.PinyinHelper;importnet.sourceforge.pinyin4j.format.HanyuPinyinCaseType;importnet.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;importnet.sourceforge.pinyin4j.format.HanyuPinyinToneType;importnet.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;/***

* Created by zengxm on 2014/12/4.*/

public classPinyinUtils {

HanyuPinyinOutputFormat format= null;public static enumType {

UPPERCASE,//全部大写

LOWERCASE, //全部小写

FIRSTUPPER, //首字母大写

ONLYFIRSTCHAR //只有首字母--大写

}static PinyinUtils record = newPinyinUtils();publicPinyinUtils(){

format= newHanyuPinyinOutputFormat();

format.setCaseType(HanyuPinyinCaseType.UPPERCASE);

format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);

}//首字母大写 明天--Ming tian

public staticString toPinYinFirstUpper(String str,String spera) {

String pinYin;try{

pinYin=record.toPinYin(str, spera, Type.FIRSTUPPER);if("0123456789".contains(pinYin)) {

pinYin=numBerToPinyin(pinYin);

}returnpinYin;

}catch(BadHanyuPinyinOutputFormatCombination e) {return "";

}

}//全部大写 明天--MINGTIAN

public staticString toPinYin(String str,String spera){

String pinYin;try{

pinYin=record.toPinYin(str, spera, Type.UPPERCASE);returnpinYin;

}catch(BadHanyuPinyinOutputFormatCombination e) {return "";

}

}//只包含首字母,大写 明天 --MT

public staticString OnlyFirstChar_Upper(String str){

String pinYin;try{

pinYin= record.toPinYin(str, " ", Type.FIRSTUPPER);if(pinYin.length() == 0) {return "";

}

String[] array= pinYin.split(" ");

String firstchar= "";for(String ste : array) {if(ste.length() >0) {

firstchar+= ste.substring(0,1).toUpperCase();

}

}returnfirstchar;

}catch(BadHanyuPinyinOutputFormatCombination e) {return "";

}

}/*** 将str转换成拼音,如果不是汉字或者没有对应的拼音,则不作转换

* 如: 明天 转换成 MINGTIAN

*@paramstr

*@paramspera

*@return*@throwsBadHanyuPinyinOutputFormatCombination*/

public String toPinYin(String str, String spera, Type type) throwsBadHanyuPinyinOutputFormatCombination {if(str == null || str.trim().length()==0) {return "";

}if(type ==Type.UPPERCASE) {

format.setCaseType(HanyuPinyinCaseType.UPPERCASE);

}else{

format.setCaseType(HanyuPinyinCaseType.LOWERCASE);

}

String py= "";

String temp= "";

String[] t;for(int i=0;i

py+=c;

}else{

t=PinyinHelper.toHanyuPinyinStringArray(c, format);if(t == null) {

py+=c;

}else{

temp= t[0];if(type ==Type.FIRSTUPPER) {

temp= t[0].toUpperCase().charAt(0)+temp.substring(1);

}

py+= temp+(i==str.length()-1?"":spera);

}

}

}returnpy.trim();

}public staticString getFirstSpell(String chinese) {

StringBuffer pybf= newStringBuffer();char[] arr =chinese.toCharArray();

HanyuPinyinOutputFormat defaultFormat= newHanyuPinyinOutputFormat();

defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);

defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);for (int i = 0; i < arr.length; i++) {if (arr[i] > 128) {try{

String[] temp=PinyinHelper.toHanyuPinyinStringArray(arr[i], defaultFormat);if (temp != null) {

pybf.append(temp[0].charAt(0));

}

}catch(BadHanyuPinyinOutputFormatCombination e) {

e.printStackTrace();

}

}else{

pybf.append(arr[i]);

}

}return pybf.toString().replaceAll("\\W", "").trim();

}//数字转换成对应拼音

public staticString numBerToPinyin(String str) {

String pinyin= null;switch(str) {case "0":

pinyin= "Z";break;case "1":

pinyin= "Y";break;case "2":

pinyin= "E";break;case "3":

pinyin= "S";break;case "4":

pinyin= "S";break;case "5":

pinyin= "W";break;case "6":

pinyin= "L";break;case "7":

pinyin= "Q";break;case "8":

pinyin= "B";break;case "9":

pinyin= "J";break;

}returnpinyin;

}public static void main(String[] args) throwsBadHanyuPinyinOutputFormatCombination {

System.out.println(toPinYinFirstUpper("赵波蓝"," "));

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值