zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    数据结构—链表
    python字母串查找基本操作
    python九九乘法表程序代码
    SpringMVC跨域问题排查以及源码实现
    深入理解MySql子查询IN的执行和优化
    Dubbo源码阅读-服务导出
    Disconf源码分析之启动过程分析下(2)
    Disconf源码分析之启动过程分析上(1)
    Java多线程volatile和synchronized总结
    Java多线程基础总结
  • 原文地址:https://www.cnblogs.com/tiantianiy/p/13686192.html
Copyright © 2011-2022 走看看