java汉子转拼音

来源:互联网 发布:如何复制知乎的文字 编辑:程序博客网 时间:2024/04/28 10:25

恶魔之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();    }}  
原创粉丝点击