zoukankan      html  css  js  c++  java
  • 根据输入的中文得到拼音全拼和中文首字母

              工具类----Java根据输入的中文获得中文的拼音全拼和首字母

    首先需要引入.pinyin4j-2.5.0.jar 包

    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;

    第一个方法:根据输入的中文获得拼音。

        

             /**
    	 * 得到全拼
    	 * @param src
    	 * @return
    	 */
    	public static String getPingYin(String src) {
    		char[] t1 = null;
    		t1 = src.toCharArray();
    		String[] t2 = new String[t1.length];
    		HanyuPinyinOutputFormat t3 = new HanyuPinyinOutputFormat();
    		t3.setCaseType(HanyuPinyinCaseType.LOWERCASE);
    		t3.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
    		t3.setVCharType(HanyuPinyinVCharType.WITH_V);
    		String t4 = "";
    		int t0 = t1.length;
    		try {
    			for (int i = 0; i < t0; i++) {
    				// 判断是否为汉字字符
    				if (java.lang.Character.toString(t1[i]).matches(
    						"[\u4E00-\u9FA5]+")) {
    					t2 = PinyinHelper.toHanyuPinyinStringArray(t1[i], t3);
    					t4 += t2[0];
    				} else {
    					t4 += java.lang.Character.toString(t1[i]);
    				}
    			}
    			return t4;
    		} catch (BadHanyuPinyinOutputFormatCombination e1) {
    			e1.printStackTrace();
    		}
    		return t4;
    	}
    

      第二种:获得拼音的首字母

        /**
    	 * 得到中文首字母
    	 * 
    	 * @param str
    	 * @return
    	 */
    	public static String getPinYinHeadChar(String str) {
    
    		String convert = "";
    		for (int j = 0; j < str.length(); j++) {
    			char word = str.charAt(j);
    			String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(word);
    			if (pinyinArray != null) {
    				convert += pinyinArray[0].charAt(0);
    			} else {
    				convert += word;
    			}
    		}
    		return convert;
    	}
    

      两种方法都需要将字符串转移为ASCII码

    方法如下:

         /**
    	 * 将字符串转移为ASCII码
    	 * 
    	 * @param cnStr
    	 * @return
    	 */
    	public static String getCnASCII(String cnStr) {
    		StringBuffer strBuf = new StringBuffer();
    		byte[] bGBK = cnStr.getBytes();
    		for (int i = 0; i < bGBK.length; i++) {
    			// System.out.println(Integer.toHexString(bGBK[i]&0xff));
    			strBuf.append(Integer.toHexString(bGBK[i] & 0xff));
    		}
    		return strBuf.toString();
    	}
    

      最后:可以测试一下我们所做的方法

      public static void main(String[] args) {
        String cnStr = "测试拼音方法";
        System.out.println("获得中文的全拼:=="+getPingYin(cnStr));
        System.out.println(getPinYinHeadChar(cnStr));
      }

  • 相关阅读:
    hdu1753大明A+B(大数模拟)
    hdu 2594 Simpsons’ Hidden Talents(kmp)
    jQuery each使用
    [转]使用CSS和JQuery,模拟超链接点击 原文:http://www.cnblogs.com/return8023/archive/2012/05/19/2509177.html
    6.21Java多线程并发协作信号灯法
    6.21Java多线程并发高级主题_定时调度问题
    6.21Java多线程并发管程法
    asp.net ajax 下载
    jsp文件包含(引的)
    Jquery Ajax WebService
  • 原文地址:https://www.cnblogs.com/wyf-love-dch/p/7144721.html
Copyright © 2011-2022 走看看