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

    public class PinyinUtils {
    
        /**
         * 获得汉语拼音首字母
         *
         * @param chines 汉字
         * @return
         */
        public static String getAlpha(String chines) {
            String pinyinName = "";
            char[] nameChar = chines.toCharArray();
            HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
            defaultFormat.setCaseType(HanyuPinyinCaseType.UPPERCASE);
            defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
            for (int i = 0; i < nameChar.length; i++) {
                if (nameChar[i] > 128) {
                    try {
                        pinyinName += PinyinHelper.toHanyuPinyinStringArray(
                                nameChar[i], defaultFormat)[0].charAt(0);
                    } catch (BadHanyuPinyinOutputFormatCombination e) {
                        e.printStackTrace();
                    }
                } else {
                    pinyinName += nameChar[i];
                }
            }
            return pinyinName;
        }
    
        /**
         * 将字符串中的中文转化为拼音,英文字符不变
         *
         * @param inputString 汉字
         * @return
         */
        public static String getPingYin(String inputString) {
            HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
            format.setCaseType(HanyuPinyinCaseType.LOWERCASE);
            format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
            format.setVCharType(HanyuPinyinVCharType.WITH_V);
            String output = "";
            if (inputString != null && inputString.length() > 0
                    && !"null".equals(inputString)) {
                char[] input = inputString.trim().toCharArray();
                try {
                    for (int i = 0; i < input.length; i++) {
                        if (java.lang.Character.toString(input[i]).matches(
                                "[\u4E00-\u9FA5]+")) {
                            String[] temp = PinyinHelper.toHanyuPinyinStringArray(
                                    input[i], format);
                            output += temp[0];
                        } else
                            output += java.lang.Character.toString(input[i]);
                    }
                } catch (BadHanyuPinyinOutputFormatCombination e) {
                    e.printStackTrace();
                }
            } else {
                return "*";
            }
            return output;
        }
    
        /**
         * 汉字转换位汉语拼音首字母,英文字符不变
         *
         * @param chines 汉字
         * @return 拼音
         */
        public static String converterToFirstSpell(String chines) {
            String pinyinName = "";
            char[] nameChar = chines.toCharArray();
            HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
            defaultFormat.setCaseType(HanyuPinyinCaseType.UPPERCASE);
            defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
            for (int i = 0; i < nameChar.length; i++) {
                if (nameChar[i] > 128) {
                    try {
                        pinyinName += PinyinHelper.toHanyuPinyinStringArray(
                                nameChar[i], defaultFormat)[0].charAt(0);
                    } catch (BadHanyuPinyinOutputFormatCombination e) {
                        e.printStackTrace();
                    }
                } else {
                    pinyinName += nameChar[i];
                }
            }
            return pinyinName;
        }
    
    }
  • 相关阅读:
    Leetcode 122. 买卖股票的最佳时机 II
    Leetcode 121. 买卖股票的最佳时机
    Leetcode 205. 同构字符串
    Leetcode 875. 爱吃香蕉的珂珂
    Leetcode 921. 使括号有效的最少添加
    Leetcode 238. 除自身以外数组的乘积
    评论设置----第二章:创建和管理内容
    其它内容选项----第二章:创建和管理内容
    预览和全展示----第二章:创建和管理内容
    Drupal的主题----第一章:Drupal的介绍
  • 原文地址:https://www.cnblogs.com/lxk233/p/10255432.html
Copyright © 2011-2022 走看看