2 smile  110 Smile__110 于 2013.11.05 10:28 提问

java utf-8编码 如何获得汉字的首字母

java utf-8编码 如何获得汉字的首字母,网上很多,但都是gbk的,我想要的是utf-8的,大家有知道的告诉我,急!!!

1个回答

u010694778
u010694778   2015.01.17 14:33

package com.app.text;
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 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;
              }     
          }
          convert=convert.toUpperCase();
          return convert;
      }

      /**
       * 将字符串转移为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++) {
              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));
          System.out.println(getCnASCII(cnStr));
      }

  }

然后去网上下一个jar包,pinyin4j-2.0.5.jar就行了

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!