java汉子转拼音

xiaoxiao2021-02-28  86

恶魔之java汉子转拼音-简单易操作

配置

pom.xml配置 <!-- pinyin4j 中文转换英文 --> <dependency> <groupId>com.belerweb</groupId> <artifactId>pinyin4j</artifactId> <version>2.5.0</version> </dependency> <!-- logger日志 --> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.1.7</version> </dependency>

代码示例

PinYinUtil package myUtil.myUtil; import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat; import net.sourceforge.pinyin4j.format.HanyuPinyinToneType; import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination; import org.slf4j.Logger; import org.slf4j.LoggerFactory; public class PinYinUtil { private static final Logger logger = LoggerFactory .getLogger(PinYinUtil.class); /** * 将含有汉子英文的字符串转换为 拼音,英文保持原样 * * @param str * @return */ public static String getStringPinYin(String str) { String[] pinyin = null; str = ValidateUtil.isNull(str)?"":str; StringBuilder sb = new StringBuilder(); HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat(); for (int i = 0; i < str.length(); ++i) { try { format.setToneType(HanyuPinyinToneType.WITHOUT_TONE); pinyin = PinyinHelper.toHanyuPinyinStringArray(str.charAt(i), format); } catch (BadHanyuPinyinOutputFormatCombination e) { logger.error("汉子转拼音异常!"); } if (pinyin == null) {// 如果str.charAt(i)非汉字,则保持原样 sb.append(str.charAt(i)); } else { sb.append(pinyin[0]); } } return sb.toString(); } /** * 将含有汉子英文的字符串转换为 首字母,英文保持原样 * * @param str * @return */ public static String getStringHeadPinYin(String str) { String[] pinyin = null; str = ValidateUtil.isNull(str)?"":str; StringBuilder sb = new StringBuilder(); HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat(); for (int i = 0; i < str.length(); ++i) { try { format.setToneType(HanyuPinyinToneType.WITHOUT_TONE); pinyin = PinyinHelper.toHanyuPinyinStringArray(str.charAt(i),format); } catch (BadHanyuPinyinOutputFormatCombination e) { logger.error("汉子转拼音异常!"); } if (pinyin == null) {// 如果str.charAt(i)非汉字,则保持原样 sb.append(str.charAt(i)); } else { sb.append(pinyin[0].charAt(0)); } } return sb.toString(); } }
转载请注明原文地址: https://www.6miu.com/read-76322.html

最新回复(0)