Java汉字转成汉语拼音工具类
2017-06-30 16:06
393 查看
1 import net.sourceforge.pinyin4j.PinyinHelper; 2 import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType; 3 import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat; 4 import net.sourceforge.pinyin4j.format.HanyuPinyinToneType; 5 import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType; 6 import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination; 7 8 public class HanyuPinyinHelper { 9 10 /** 11 * 将文字转为汉语拼音 12 * @param chineselanguage 要转成拼音的中文 13 */ 14 public String toHanyuPinyin(String ChineseLanguage){ 15 char[] cl_chars = ChineseLanguage.trim().toCharArray(); 16 String hanyupinyin = ""; 17 HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat(); 18 defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);// 输出拼音全部小写 19 defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);// 不带声调 20 defaultFormat.setVCharType(HanyuPinyinVCharType.WITH_V) ; 21 try { 22 for (int i=0; i<cl_chars.length; i++){ 23 if (String.valueOf(cl_chars[i]).matches("[\u4e00-\u9fa5]+")){// 10376 如果字符是中文,则将中文转为汉语拼音 24 hanyupinyin += PinyinHelper.toHanyuPinyinStringArray(cl_chars[i], defaultFormat)[0]; 25 } else {// 如果字符不是中文,则不转换 26 hanyupinyin += cl_chars[i]; 27 } 28 } 29 } catch (BadHanyuPinyinOutputFormatCombination e) { 30 System.out.println("字符不能转成汉语拼音"); 31 } 32 return hanyupinyin; 33 } 34 35 public static String getFirstLettersUp(String ChineseLanguage){ 36 return getFirstLetters(ChineseLanguage ,HanyuPinyinCaseType.UPPERCASE); 37 } 38 39 public static String getFirstLettersLo(String ChineseLanguage){ 40 return getFirstLetters(ChineseLanguage ,HanyuPinyinCaseType.LOWERCASE); 41 } 42 43 public static String getFirstLetters(String ChineseLanguage,HanyuPinyinCaseType caseType) { 44 char[] cl_chars = ChineseLanguage.trim().toCharArray(); 45 String hanyupinyin = ""; 46 HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat(); 47 defaultFormat.setCaseType(caseType);// 输出拼音全部大写 48 defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);// 不带声调 49 try { 50 for (int i = 0; i < cl_chars.length; i++) { 51 String str = String.valueOf(cl_chars[i]); 52 if (str.matches("[\u4e00-\u9fa5]+")) {// 如果字符是中文,则将中文转为汉语拼音,并取第一个字母 53 hanyupinyin += PinyinHelper.toHanyuPinyinStringArray(cl_chars[i], defaultFormat)[0].substring(0, 1); 54 } else if (str.matches("[0-9]+")) {// 如果字符是数字,取数字 55 hanyupinyin += cl_chars[i]; 56 } else if (str.matches("[a-zA-Z]+")) {// 如果字符是字母,取字母 57 hanyupinyin += cl_chars[i]; 58 } else {// 否则不转换 59 hanyupinyin += cl_chars[i];//如果是标点符号的话,带着 60 } 61 } 62 } catch (BadHanyuPinyinOutputFormatCombination e) { 63 System.out.println("字符不能转成汉语拼音"); 64 } 65 return hanyupinyin; 66 } 67 68 public static String getPinyinString(String ChineseLanguage){ 69 char[] cl_chars = ChineseLanguage.trim().toCharArray(); 70 String hanyupinyin = ""; 71 HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat(); 72 defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);// 输出拼音全部大写 73 defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);// 不带声调 74 try { 75 for (int i = 0; i < cl_chars.length; i++) { 76 String str = String.valueOf(cl_chars[i]); 77 if (str.matches("[\u4e00-\u9fa5]+")) {// 如果字符是中文,则将中文转为汉语拼音,并取第一个字母 78 hanyupinyin += PinyinHelper.toHanyuPinyinStringArray( 79 cl_chars[i], defaultFormat)[0]; 80 } else if (str.matches("[0-9]+")) {// 如果字符是数字,取数字 81 hanyupinyin += cl_chars[i]; 82 } else if (str.matches("[a-zA-Z]+")) {// 如果字符是字母,取字母 83 84 hanyupinyin += cl_chars[i]; 85 } else {// 否则不转换 86 } 87 } 88 } catch (BadHanyuPinyinOutputFormatCombination e) { 89 System.out.println("字符不能转成汉语拼音"); 90 } 91 return hanyupinyin; 92 } 93 /** 94 * 取第一个汉字的第一个字符 95 * @Title: getFirstLetter 96 * @Description: TODO 97 * @return String 98 * @throws 99 */ 100 public static String getFirstLetter(String ChineseLanguage){ 101 char[] cl_chars = ChineseLanguage.trim().toCharArray(); 102 String hanyupinyin = ""; 103 HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat(); 104 defaultFormat.setCaseType(HanyuPinyinCaseType.UPPERCASE);// 输出拼音全部大写 105 defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);// 不带声调 106 try { 107 String str = String.valueOf(cl_chars[0]); 108 if (str.matches("[\u4e00-\u9fa5]+")) {// 如果字符是中文,则将中文转为汉语拼音,并取第一个字母 109 hanyupinyin = PinyinHelper.toHanyuPinyinStringArray( 110 cl_chars[0], defaultFormat)[0].substring(0, 1);; 111 } else if (str.matches("[0-9]+")) {// 如果字符是数字,取数字 112 hanyupinyin += cl_chars[0]; 113 } else if (str.matches("[a-zA-Z]+")) {// 如果字符是字母,取字母 114 115 hanyupinyin += cl_chars[0]; 116 } else {// 否则不转换 117 118 } 119 } catch (BadHanyuPinyinOutputFormatCombination e) { 120 System.out.println("字符不能转成汉语拼音"); 121 } 122 return hanyupinyin; 123 } 124 125 public static void main(String[] args) { 126 HanyuPinyinHelper hanyuPinyinHelper = new HanyuPinyinHelper() ; 127 System.out.println(hanyuPinyinHelper.toHanyuPinyin("多发的发独守空房阿道夫打发第三方")); 128 } 129 }
相关文章推荐
- Java汉字转成汉语拼音工具类
- Java汉字转汉语拼音工具类
- Java汉字转成汉语拼音工具类
- Java汉字转成汉语拼音工具类
- Java汉字转成汉语拼音工具类
- Java汉字转成汉语拼音工具类
- Java工作利器之常用工具类(一)——数字工具类-数字转汉字
- Java实现将汉字转化为汉语拼音的方法
- Java工具类——把金额转换成汉字大写金额
- Java工具类——把金额转换成汉字大写金额
- java将汉字转成汉语拼音
- java 汉字转化为拼音工具类
- java 汉字转换英文小写工具类
- Java汉字转拼音工具类
- Java常用数字工具类 数字转汉字(1)
- java将汉字转换成汉语拼音(pinyin4j.jar的使用及原理)
- java取汉字拼音工具类
- 一款java写的将汉字转为拼音的工具类
- 将汉字转换为汉语拼音java实现
- 工具类_java 数字转化为汉字大写