zoukankan      html  css  js  c++  java
  • 汉字转拼音工具

    import java.util.Locale;
    
    import org.apache.commons.lang3.StringUtils;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    
    import com.github.stuxuhai.jpinyin.PinyinException;
    import com.github.stuxuhai.jpinyin.PinyinFormat;
    import com.github.stuxuhai.jpinyin.PinyinHelper;
    
    /**
     * 汉子转拼音
     * 
     * @author: Nemo
     */
    public class JPinyinUtils {
    
        private static final Logger log = LoggerFactory.getLogger(JPinyinUtils.class);
    
        private final static String PINYIN_SEPARATOR = ",";
    
        /**
         * @Description: 将中文转换为拼音(每个汉子的拼音逗号隔开):微迈->wei,mai
         * @param str
         * @return
         */
        public static String convertToPY(String str) {
            if (StringUtil.isEmpty(str)) {
                return str;
            }
            try {
                return PinyinHelper.convertToPinyinString(str, PINYIN_SEPARATOR, PinyinFormat.WITHOUT_TONE);
            } catch (PinyinException e) {
                log.error("拼音转换错", e);
            }
            return str;
        }
    
        /**
         * 转换为简拼大写,中间用逗号隔开:微迈->W,M
         *
         * @param str
         * @return
         */
        public static String covertToJP(String str) {
            if (StringUtil.isEmpty(str)) {
                return str;
            }
            try {
                String jp = PinyinHelper.getShortPinyin(str);
                if (StringUtils.isNotBlank(jp)) {
                    jp = StringUtil.insertSeparator(jp, PINYIN_SEPARATOR);
                }
                return jp.toUpperCase(Locale.getDefault());
            } catch (PinyinException e) {
                log.error("拼音转换错", e);
            }
            return str;
        }
    
        /**
         * 转换为简拼大写,中间用逗号隔开:微迈->W,M
         *
         * @param str
         * @return
         */
        public static String covertToJPWithNonSeparator(String str) {
            if (StringUtil.isEmpty(str)) {
                return str;
            }
            try {
                String jp = PinyinHelper.getShortPinyin(str);
                return jp.toUpperCase(Locale.getDefault());
            } catch (PinyinException e) {
                log.error("拼音转换错", e);
            }
            return str;
        }
    
        /**
         * 将中文转换为拼音:微迈->微迈
         *
         * @param str
         * @return
         */
        public static String covertToPinYin(String str) {
            if (StringUtil.isEmpty(str)) {
                return str;
            }
            try {
                return PinyinHelper.convertToPinyinString(str, "", PinyinFormat.WITHOUT_TONE);
            } catch (PinyinException e) {
                log.error("拼音转换错", e);
            }
            return str;
        }

    maven 依赖

            <dependency>
                <groupId>com.github.stuxuhai</groupId>
                <artifactId>jpinyin</artifactId>
                <version>1.1.8</version>
            </dependency>    
  • 相关阅读:
    入坑支付宝小程序
    解决ios使用伪元素content:‘2714’自定义radio样式无效
    APP排序小三角,兼容IOS和Android
    复制功能
    padStart()和padEnd()方法的使用
    Vue event.stopPropagation()和event.preventDefault()的使用
    App 仿淘宝:控制详情和购买须知样式切换,控制商品详情和购买须知选项卡的位置(固定在顶部还是正常)
    vue.js中 this.$nextTick()的使用
    JAVA--算法与数据结构
    【Linux
  • 原文地址:https://www.cnblogs.com/zhangrongfei/p/14921610.html
Copyright © 2011-2022 走看看