IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    [原]终结者:借助pinyin4j相关jar包将汉字转换为全拼的拼音

    wangshuxuncom发表于 2015-12-31 21:06:54
    love 0
    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.HanyuPinyinVCharType;
    import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;
    
    public class Test {
    	
        /**
         * 将汉字转换为全拼的拼音。
         * @param caseType 当为1时获取的首字母为小写,否则为大写。
         * @author 高焕杰
         */
        public static String getPinYinAllChar(String zn_str, int caseType) {
            char[] strChar = zn_str.toCharArray();
            HanyuPinyinOutputFormat hanYuPinOutputFormat = new HanyuPinyinOutputFormat();
            // 输出设置,大小写,音标方式等
            if(1 == caseType) {
                hanYuPinOutputFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
            } else {
                hanYuPinOutputFormat.setCaseType(HanyuPinyinCaseType.UPPERCASE);
            }
            hanYuPinOutputFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
            hanYuPinOutputFormat.setVCharType(HanyuPinyinVCharType.WITH_V);
           
            StringBuffer pyStringBuffer = new StringBuffer();
            String[] strString = new String[strChar.length];
            try {
                for (int i = 0; i < strChar.length; i++) {
                    if (Character.toString(strChar[i]).matches("[\\u4E00-\\u9FA5]+")) {//如果是汉字字符
                    	strString = PinyinHelper.toHanyuPinyinStringArray(strChar[i], hanYuPinOutputFormat);//将汉字的几种全拼都存到strString数组中
                        pyStringBuffer.append(strString[0]);//取出该汉字全拼的第一种读音并连接到字符串pyStringBuffer后
                    } else {//如果不是汉字字符,直接取出字符并连接到字符串pyStringBuffer后
                    	pyStringBuffer.append(Character.toString(strChar[i]));
                    }
                }
            } catch (BadHanyuPinyinOutputFormatCombination e) {
                e.printStackTrace();
            }
            return pyStringBuffer.toString();
        }
        
    	public static void main(String[] args) {
            String cnStr = "刘菲菲";
            System.out.println(getPinYinAllChar(cnStr,1));   //输出“liufeifei”
            System.out.println(getPinYinAllChar(cnStr,2));   //输出“LIUFEIFEI”
    	}
    }
    【0分下载相关jar包】


沪ICP备19023445号-2号
友情链接