• java文字转成拼音


    package com.jframe.kit;

    import net.sourceforge.pinyin4j.PinyinHelper;
    import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;
    import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
    import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
    import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;

    /**
     * 汉字转换位汉语拼音,英文字符不变
     * @author xuke
     *
     */
    public class Cn2SpellKit {
     
        /**
        * 汉字转换位汉语拼音首字母,英文字符不变
        * @param chines 汉字
        * @return 拼音
        */
        public static String converterToFirstSpell(String chines){     
            String pinyinName = "";
            char[] nameChar = chines.toCharArray();
            HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
            defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
            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 chines 汉字
        * @return 拼音
        */
        public static String converterToSpell(String chines){     
            String pinyinName = "";
            char[] nameChar = chines.toCharArray();
            HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
            defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
            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];
                    } catch (BadHanyuPinyinOutputFormatCombination e) {
                        e.printStackTrace();
                    }
                }else{
                 pinyinName += nameChar[i];
                }
            }
            return pinyinName;
        }
       
        public static String spell(String name){
         String pinyinName = "";
         if(name!=null && !"".equals(name)){
          if(name.length()<=2){
           pinyinName = converterToSpell(name);
          }else{
              pinyinName = converterToSpell(name.substring(0,1))+converterToFirstSpell(name.substring(1,name.length()));
             }
         }
         return pinyinName;
        }
       
        public static void main(String[] args) {
         
         System.out.println(spell("杨成"));
      System.out.println(spell("王帅(小)").toUpperCase());
     }
    }

    必须pinyin4j-2.5.0.jar

    版权声明:本文博客原创文章,博客,未经同意,不得转载。

  • 相关阅读:
    C语言 汉诺塔问题
    指向函数的指针 linux中常见的函数指针应用及函数指针数组
    C语言 折半/二分法查找
    C语言 stdlib.h自带函数库:qsort()排序,简称"快排"
    几种排序算法的稳定性归纳
    C语言 归并排序
    c语言 堆排序 多函数处理法
    C语言 递归方法实现快速排序
    C语言 通过输出排序次数来比较希尔排序和插入排序的优劣
    c语言 希尔排序简化函数版
  • 原文地址:https://www.cnblogs.com/hrhguanli/p/4630755.html
Copyright © 2020-2023  润新知