pinyin4j

来源:互联网 发布:道路 检测 数据库 编辑:程序博客网 时间:2024/05/22 13:52
public class PinyinToolkit {         /**          * @return 汉语拼音首字母          */         public static String cn2FirstSpell(String chinese) {                 StringBuffer pybf = new StringBuffer();                 char[] arr = chinese.toCharArray();                 HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();                 defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);                 defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);                 for (int i = 0; i < arr.length; i++) {                         if (arr[i] > 128) {                                 try {                                         String[] _t = PinyinHelper.toHanyuPinyinStringArray(arr[i], defaultFormat);                                         if (_t != null) {                                                 pybf.append(_t[0].charAt(0));                                         }                                 } catch (BadHanyuPinyinOutputFormatCombination e) {                                         e.printStackTrace();                                 }                         } else {                                 pybf.append(arr[i]);                         }                 }                 return pybf.toString().replaceAll("\\W", "").trim();         }         /**          * @return 汉语拼音          */         public static String cn2Spell(String chinese) {                 StringBuffer pybf = new StringBuffer();                 char[] arr = chinese.toCharArray();                 HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();                 defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);                 defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);                 for (int i = 0; i < arr.length; i++) {                         if (arr[i] > 128) {                                 try {                                         pybf.append(PinyinHelper.toHanyuPinyinStringArray(arr[i], defaultFormat)[0]);                                 } catch (BadHanyuPinyinOutputFormatCombination e) {                                         e.printStackTrace();                                 }                         } else {                                 pybf.append(arr[i]);                         }                 }                 return pybf.toString();         }         public static void main(String[] args) throws UnsupportedEncodingException {                 String x = "去微软推哦怕123";                 System.out.println(cn2FirstSpell(x));                 System.out.println(cn2Spell(x));         } }