Java-汉字繁体拼音转换
2018-10-11 10:01:16来源:博客园 阅读 ()
1 import com.github.stuxuhai.jpinyin.ChineseHelper; 2 import com.github.stuxuhai.jpinyin.PinyinFormat; 3 import com.github.stuxuhai.jpinyin.PinyinHelper; 4 5 /** 6 * @ClassName: ChineseConvertPinyinUtil 7 * @Description: 汉语繁体拼音转换工具类 8 */ 9 public final class ChineseConvertPinyinUtil { 10 private static final String SPACEMARK = ""; 11 private ChineseConvertPinyinUtil() {} 12 13 /** 14 * 检查汉字是否为多音字 15 * @param pinYinStr 需转换的汉字 16 * @param deleteBlank 转换后去掉非打印字符 17 * @param spaceMark 非打印字符 18 * @return true 多音字,false 不是多音字 19 */ 20 public static boolean checkPinYin(char pinYinStr) { 21 boolean check = false; 22 try { 23 check = PinyinHelper.hasMultiPinyin(pinYinStr); 24 } catch (Exception e) { 25 e.printStackTrace(); 26 } 27 return check; 28 } 29 30 /** 31 * 转换为每个汉字对应拼音首字母字符串 32 * @param pinYinStr 需转换的汉字 33 * @param deleteBlank 转换后去掉非打印字符 34 * @param spaceMark 非打印字符 35 * @return 拼音字符串 36 */ 37 public static String convertToGetShortPinYin(String pinYinStr, boolean deleteBlank) { 38 String tempStr = null; 39 try { 40 tempStr = PinyinHelper.getShortPinyin(pinYinStr); 41 } catch (Exception e) { 42 tempStr = pinYinStr; 43 e.printStackTrace(); 44 } 45 if (deleteBlank) { 46 tempStr = tempStr.replaceAll("\\s*", SPACEMARK); 47 } 48 return tempStr; 49 } 50 51 /** 52 * 转换为有声调的拼音字符串 53 * @param pinYinStr 汉字 54 * @param deleteBlank 转换后去掉非打印字符 55 * @param spaceMark 非打印字符 56 * @return 有声调的拼音字符串 57 */ 58 public static String convertToMarkPinYin(String pinYinStr, boolean deleteBlank, String spaceMark) { 59 String tempStr = pinYinStr; 60 try { 61 if (spaceMark == null) { 62 spaceMark = SPACEMARK; 63 } 64 tempStr = PinyinHelper.convertToPinyinString(pinYinStr, spaceMark, PinyinFormat.WITH_TONE_MARK); 65 66 } catch (Exception e) { 67 tempStr = pinYinStr; 68 e.printStackTrace(); 69 } 70 if (deleteBlank) { 71 tempStr = tempStr.replaceAll("\\s*", SPACEMARK); 72 } 73 return tempStr; 74 } 75 76 /** 77 * 转换为数字声调字符串 78 * @param pinYinStr 需转换的汉字 79 * @param deleteBlank 转换后去掉非打印字符 80 * @param spaceMark 非打印字符 81 * @return 转换完成的拼音字符串 82 */ 83 public static String convertToNumberPinYin(String pinYinStr, boolean deleteBlank, String spaceMark) { 84 String tempStr = null; 85 try { 86 if (spaceMark == null) { 87 spaceMark = SPACEMARK; 88 } 89 tempStr = PinyinHelper.convertToPinyinString(pinYinStr, spaceMark, PinyinFormat.WITH_TONE_NUMBER); 90 } catch (Exception e) { 91 tempStr = pinYinStr; 92 e.printStackTrace(); 93 } 94 if (deleteBlank) { 95 tempStr = tempStr.replaceAll("\\s*", SPACEMARK); 96 } 97 return tempStr; 98 } 99 100 /** 101 * 繁体转换为简体 102 * @param pinYinSt 103 * @param deleteBlank 转换后去掉非打印字符 104 * @return 105 */ 106 public static String convertToSimplified(String pinYinSt, boolean deleteBlank) { 107 String tempStr = null; 108 try { 109 tempStr = ChineseHelper.convertToSimplifiedChinese(pinYinSt); 110 } catch (Exception e) { 111 tempStr = pinYinSt; 112 e.printStackTrace(); 113 } 114 if (deleteBlank) { 115 tempStr = tempStr.replaceAll("\\s*", SPACEMARK); 116 } 117 return tempStr; 118 } 119 120 /** 121 * 转换为不带音调的拼音字符串 122 * @param pinYinStr 需转换的汉字 123 * @param deleteBlank 转换后去掉非打印字符 124 * @param spaceMark 非打印字符 125 * @return 拼音字符串 126 */ 127 public static String convertToTonePinYin(String pinYinStr, boolean deleteBlank, String spaceMark) { 128 String tempStr = null; 129 try { 130 if (spaceMark == null) { 131 spaceMark = SPACEMARK; 132 } 133 tempStr = PinyinHelper.convertToPinyinString(pinYinStr, spaceMark, PinyinFormat.WITHOUT_TONE); 134 } catch (Exception e) { 135 tempStr = pinYinStr; 136 e.printStackTrace(); 137 } 138 if (deleteBlank) { 139 tempStr = tempStr.replaceAll("\\s*", SPACEMARK); 140 } 141 return tempStr; 142 } 143 144 /** 145 * 简体转换为繁体 146 * @param pinYinStr 147 * @param deleteBlank 转换后去掉非打印字符 148 * @return 149 */ 150 public static String convertToTraditional(String pinYinStr, boolean deleteBlank) { 151 String tempStr = null; 152 try { 153 tempStr = ChineseHelper.convertToTraditionalChinese(pinYinStr); 154 } catch (Exception e) { 155 tempStr = pinYinStr; 156 e.printStackTrace(); 157 } 158 if (deleteBlank) { 159 tempStr = tempStr.replaceAll("\\s*", SPACEMARK); 160 } 161 return tempStr; 162 } 163 164 public static void main(String[] args) { 165 String str = "重慶 most input \r\n a b c# d"; 166 System.out.println(convertToSimplified(str, true)); 167 System.out.println(checkPinYin('重')); 168 System.out.println(convertToMarkPinYin(str, true, null)); 169 System.out.println(convertToGetShortPinYin(str, true)); 170 System.out.println(convertToNumberPinYin(str, true, null)); 171 System.out.println(convertToTonePinYin(str, true, null)); 172 System.out.println(convertToTraditional(str, true)); 173 } 174 }
依赖:
1 <dependency>
2 <groupId>com.github.stuxuhai</groupId>
3 <artifactId>jpinyin</artifactId>
4 <version>1.1.8</version>
5 </dependency>
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Java--反射(框架设计的灵魂)案例 2020-06-11
- Java--注解 2020-06-11
- Java--反射(框架设计的灵魂) 2020-06-11
- Java--Stream流详解 2020-06-10
- 【Java-jxl插件】【Excel文件读写报错】jxl.read.biff.BiffE 2020-06-07
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash