| | |
| | | |
| | | public class HanyuPinyinHelper { |
| | | |
| | | /** |
| | | * 将文字转为汉语拼音 |
| | | * @param chineselanguage 要转成拼音的中文 |
| | | */ |
| | | public String toHanyuPinyin(String ChineseLanguage){ |
| | | char[] cl_chars = ChineseLanguage.trim().toCharArray(); |
| | | String hanyupinyin = ""; |
| | | HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat(); |
| | | defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);// 输出拼音全部小写 |
| | | defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);// 不带声调 |
| | | defaultFormat.setVCharType(HanyuPinyinVCharType.WITH_V) ; |
| | | try { |
| | | for (int i=0; i<cl_chars.length; i++){ |
| | | if (String.valueOf(cl_chars[i]).matches("[\u4e00-\u9fa5]+")){// 如果字符是中文,则将中文转为汉语拼音 |
| | | hanyupinyin += PinyinHelper.toHanyuPinyinStringArray(cl_chars[i], defaultFormat)[0]; |
| | | } else {// 如果字符不是中文,则不转换 |
| | | hanyupinyin += cl_chars[i]; |
| | | } |
| | | } |
| | | } catch (BadHanyuPinyinOutputFormatCombination e) { |
| | | System.out.println("字符不能转成汉语拼音"); |
| | | } |
| | | return hanyupinyin; |
| | | public static String getFirstLettersUp(String ChineseLanguage) { |
| | | return getFirstLetters(ChineseLanguage, HanyuPinyinCaseType.UPPERCASE); |
| | | } |
| | | |
| | | public static String getFirstLettersUp(String ChineseLanguage){ |
| | | return getFirstLetters(ChineseLanguage ,HanyuPinyinCaseType.UPPERCASE); |
| | | public static String getFirstLettersLo(String ChineseLanguage) { |
| | | return getFirstLetters(ChineseLanguage, HanyuPinyinCaseType.LOWERCASE); |
| | | } |
| | | |
| | | public static String getFirstLettersLo(String ChineseLanguage){ |
| | | return getFirstLetters(ChineseLanguage ,HanyuPinyinCaseType.LOWERCASE); |
| | | } |
| | | |
| | | public static String getFirstLetters(String ChineseLanguage,HanyuPinyinCaseType caseType) { |
| | | public static String getFirstLetters(String ChineseLanguage, HanyuPinyinCaseType caseType) { |
| | | char[] cl_chars = ChineseLanguage.trim().toCharArray(); |
| | | String hanyupinyin = ""; |
| | | HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat(); |
| | |
| | | } else if (str.matches("[a-zA-Z]+")) {// 如果字符是字母,取字母 |
| | | hanyupinyin += cl_chars[i]; |
| | | } else {// 否则不转换 |
| | | hanyupinyin += cl_chars[i];//如果是标点符号的话,带着 |
| | | hanyupinyin += cl_chars[i];// 如果是标点符号的话,带着 |
| | | } |
| | | } |
| | | } catch (BadHanyuPinyinOutputFormatCombination e) { |
| | |
| | | return hanyupinyin; |
| | | } |
| | | |
| | | public static String getPinyinString(String ChineseLanguage){ |
| | | public static String getPinyinString(String ChineseLanguage) { |
| | | char[] cl_chars = ChineseLanguage.trim().toCharArray(); |
| | | String hanyupinyin = ""; |
| | | HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat(); |
| | |
| | | for (int i = 0; i < cl_chars.length; i++) { |
| | | String str = String.valueOf(cl_chars[i]); |
| | | if (str.matches("[\u4e00-\u9fa5]+")) {// 如果字符是中文,则将中文转为汉语拼音,并取第一个字母 |
| | | hanyupinyin += PinyinHelper.toHanyuPinyinStringArray( |
| | | cl_chars[i], defaultFormat)[0]; |
| | | hanyupinyin += PinyinHelper.toHanyuPinyinStringArray(cl_chars[i], defaultFormat)[0]; |
| | | } else if (str.matches("[0-9]+")) {// 如果字符是数字,取数字 |
| | | hanyupinyin += cl_chars[i]; |
| | | } else if (str.matches("[a-zA-Z]+")) {// 如果字符是字母,取字母 |
| | |
| | | } |
| | | return hanyupinyin; |
| | | } |
| | | |
| | | /** |
| | | * 取第一个汉字的第一个字符 |
| | | * @Title: getFirstLetter |
| | | * @Description: |
| | | * @return String |
| | | * @throws |
| | | * 取第一个汉字的第一个字符 @Title: getFirstLetter @Description: @return String @throws |
| | | */ |
| | | public static String getFirstLetter(String ChineseLanguage){ |
| | | public static String getFirstLetter(String ChineseLanguage) { |
| | | char[] cl_chars = ChineseLanguage.trim().toCharArray(); |
| | | String hanyupinyin = ""; |
| | | HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat(); |
| | |
| | | try { |
| | | String str = String.valueOf(cl_chars[0]); |
| | | if (str.matches("[\u4e00-\u9fa5]+")) {// 如果字符是中文,则将中文转为汉语拼音,并取第一个字母 |
| | | hanyupinyin = PinyinHelper.toHanyuPinyinStringArray( |
| | | cl_chars[0], defaultFormat)[0].substring(0, 1);; |
| | | hanyupinyin = PinyinHelper.toHanyuPinyinStringArray(cl_chars[0], defaultFormat)[0].substring(0, 1); |
| | | } else if (str.matches("[0-9]+")) {// 如果字符是数字,取数字 |
| | | hanyupinyin += cl_chars[0]; |
| | | } else if (str.matches("[a-zA-Z]+")) {// 如果字符是字母,取字母 |
| | |
| | | } |
| | | |
| | | public static void main(String[] args) { |
| | | HanyuPinyinHelper hanyuPinyinHelper = new HanyuPinyinHelper() ; |
| | | HanyuPinyinHelper hanyuPinyinHelper = new HanyuPinyinHelper(); |
| | | System.out.println(hanyuPinyinHelper.toHanyuPinyin("多发的发独守空房阿道夫打发第三方")); |
| | | } |
| | | |
| | | /** |
| | | * 将文字转为汉语拼音 |
| | | * |
| | | * @param chineselanguage |
| | | * 要转成拼音的中文 |
| | | */ |
| | | public String toHanyuPinyin(String ChineseLanguage) { |
| | | char[] cl_chars = ChineseLanguage.trim().toCharArray(); |
| | | String hanyupinyin = ""; |
| | | HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat(); |
| | | defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);// 输出拼音全部小写 |
| | | defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);// 不带声调 |
| | | defaultFormat.setVCharType(HanyuPinyinVCharType.WITH_V); |
| | | try { |
| | | for (int i = 0; i < cl_chars.length; i++) { |
| | | if (String.valueOf(cl_chars[i]).matches("[\u4e00-\u9fa5]+")) {// 如果字符是中文,则将中文转为汉语拼音 |
| | | hanyupinyin += PinyinHelper.toHanyuPinyinStringArray(cl_chars[i], defaultFormat)[0]; |
| | | } else {// 如果字符不是中文,则不转换 |
| | | hanyupinyin += cl_chars[i]; |
| | | } |
| | | } |
| | | } catch (BadHanyuPinyinOutputFormatCombination e) { |
| | | System.out.println("字符不能转成汉语拼音"); |
| | | } |
| | | return hanyupinyin; |
| | | } |
| | | } |