zoukankan      html  css  js  c++  java
  • 获取汉字串拼音首字母,英文字符不变

    package com.sprucetec.tms.utils;

    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.exception.BadHanyuPinyinOutputFormatCombination;
    import org.apache.commons.lang.StringUtils;

    /**
    * 描述: 拼音工具类
    *
    * @author yangweiqiang
    * @date 2016/8/9
    */
    public class PinYinUtils {

    /**
    * 获取汉字串拼音首字母,英文字符不变
    *
    * @param chinese 汉字串
    * @param caseType 大写 or 小写
    * @return 汉语拼音首字母
    */
    public static String getFirstSpell(String chinese, HanyuPinyinCaseType caseType) {
    if (StringUtils.isBlank(chinese)) {
    return null;
    }

    StringBuffer sb = new StringBuffer();
    char[] arr = chinese.toCharArray();

    HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
    defaultFormat.setCaseType(caseType);
    defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);

    for (int i = 0; i < arr.length; i++) {
    if (arr[i] > 128) {
    try {
    String[] temp = PinyinHelper.toHanyuPinyinStringArray(arr[i], defaultFormat);
    if (temp != null) {
    sb.append(temp[0].charAt(0));
    }
    } catch (BadHanyuPinyinOutputFormatCombination e) {
    e.printStackTrace();
    }
    } else {
    sb.append(arr[i]);
    }
    }
    return sb.toString().replaceAll("\W", "").trim();
    }

    }
  • 相关阅读:
    函数与导数部分的题型梳理
    构造函数习题1
    破解构造函数问题
    函数的值域
    函数的定义域
    高三数学微课堂
    Redux Todos Example
    Linux下查看Nginx安装目录、版本号信息及当前运行的配置文件
    antd的Tree控件实现点击展开功能
    Redux Counter example
  • 原文地址:https://www.cnblogs.com/duyinqiang/p/6909847.html
Copyright © 2011-2022 走看看