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 解决一个加好友限制问题 或者有好的方案
  • ¥15 关于#java#的问题,请各位专家解答!
  • ¥15 急matlab编程仿真二阶震荡系统
  • ¥20 TEC-9的数据通路实验
  • ¥15 ue5 .3之前好好的现在只要是激活关卡就会崩溃
  • ¥50 MATLAB实现圆柱体容器内球形颗粒堆积
  • ¥15 python如何将动态的多个子列表,拼接后进行集合的交集
  • ¥20 vitis-ai量化基于pytorch框架下的yolov5模型
  • ¥15 如何实现H5在QQ平台上的二次分享卡片效果?
  • ¥30 求解达问题(有红包)