smile__110 2013-11-05 02:28 采纳率: 14.3%
浏览 3877

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

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

  • 写回答

1条回答

  • 落枫随缘 2015-01-17 06: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就行了

    评论

报告相同问题?

悬赏问题

  • ¥15 求chat4.0解答一道线性规划题,用lingo编程运行,第一问要求写出数学模型和lingo语言编程模型,第二问第三问解答就行,我的ddl要到了谁来求了
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名
  • ¥15 maple软件,用solve求反函数出现rootof,怎么办?
  • ¥65 汇编语言除法溢出问题
  • ¥15 Visual Studio问题
  • ¥20 求一个html代码,有偿
  • ¥100 关于使用MATLAB中copularnd函数的问题
  • ¥20 在虚拟机的pycharm上
  • ¥15 jupyterthemes 设置完毕后没有效果