记录一下:Java 汉字获取拼音或首字母工具类

发布时间:2023-05-08 09:39:21

本文主要记录如何将字符串中的中文转化为拼音,获取汉字串拼音的首字母,获取汉字串拼音的工具类,以及Java中的相关示例代码

Maven依赖配置

在 pom.xml 下面的依赖添加到文件中

<dependency>            <groupId>com.belerweb</groupId>            <artifactId>pinyin4j</artifactId>            <version>2.5.1</version></dependency>
Java代码
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 PinYinUtil {    /**     * 将字符串中的中文转化为拼音,其它字符不变     *     * @param inputString     * @return     */    public static String getPingYin(String inputString) {        HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();        format.setCaseType(HanyuPinyinCaseType.LOWERCASE);        format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);        format.setVCharType(HanyuPinyinVCharType.WITH_V);        char[] input = inputString.trim().toCharArray();        String output = "";        try {            for (int i = 0; i < input.length; i++) {                if (java.lang.Character.toString(input[i]).matches([\\u4E00-\u9FA5]+) {                    String[] temp = PinyinHelper.toHanyuPinyinStringArray(input[i], format);                    output += temp[0];                } else                    output += java.lang.Character.toString(input[i]);            }        } catch (BadHanyuPinyinOutputFormatCombination e) {            e.printStackTrace();        }        return output;    }    /**     * 获取汉字串拼音首字母,英文字符不变     * @param chinese 汉字串     * @return 汉语拼音首字母     */    public static String getFirstSpell(String chinese) {        StringBuffer pybf = new StringBuffer();        char[] arr = chinese.toCharArray();        HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();        defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);        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) {                        pybf.append(temp[0].charAt(0));                    }                } catch (BadHanyuPinyinOutputFormatCombination e) {                    e.printStackTrace();                }            } else {                pybf.append(arr[i]);            }        }        return pybf.toString().replaceAll("\\W", "").trim();    }    /**     * 获取汉字串拼音,英文字符不变     * @param chinese 汉字串     * @return 汉语拼音     */    public static String getFullSpell(String chinese) {        StringBuffer pybf = new StringBuffer();        char[] arr = chinese.toCharArray();        HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();        defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);        defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);        for (int i = 0; i < arr.length; i++) {            if (arr[i] > 128) {                try {                    pybf.append(PinyinHelper.toHanyuPinyinStringArray(arr[i], defaultFormat)[0]);                } catch (BadHanyuPinyinOutputFormatCombination e) {                    e.printStackTrace();                }            } else {                pybf.append(arr[i]);            }        }        return pybf.toString();    }}

上一篇 ReentrantLock全解读
下一篇 SpringBoot配置文件

文章素材均来源于网络,如有侵权,请联系管理员删除。

标签: Java教程Java基础Java编程技巧面试题Java面试题