• java文字转拼音、首字母缩写


    需要pom.xml引入

    <!-- https://mvnrepository.com/artifact/com.belerweb/pinyin4j -->
    <dependency>
    <groupId>com.belerweb</groupId>
    <artifactId>pinyin4j</artifactId>
    <version>2.5.0</version>
    </dependency>

    工具类

    public class Pinyin {
      /**
      * 得到 全拼
      *
      * @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码
      *
      * @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 = "8.24闪电9天asd";
      System.out.println(getPingYin(cnStr)); //8.24shandian9tianasd
      System.out.println(getPinYinHeadChar(cnStr)); //8.24sd9tasd
    }

    之前项目中遇到了业务问题需要通过拼音来模糊查询,所以当时候在网上百度了一个工具类,把这个写到了我的笔记中。但现在搜不到了所以发出来给大家分享一下,侵删。

    自己csdn地址http://blog.csdn.net/q875401793/article/details/108628527

  • 相关阅读:
    属性选择器(通常用在input)
    函数调用的文档注释
    List集合操作
    数组排序三种方法
    字符串反序输出字符串
    js中完美运动框架
    查找100-200之间是否存在水仙花数
    提示用户输入一个正整数,如果错误,则重新输入,可以使用以下的代码来保证用户输入正确:
    Ubuntu 16.10下的 jdk 1.8.0_111
    方法内部类
  • 原文地址:https://www.cnblogs.com/tiantianiy/p/13686192.html
Copyright © 2020-2023  润新知