java汉字转拼音工具类

  添加依赖

<dependency>
            <groupId>com.belerweb</groupId>
            <artifactId>pinyin4j</artifactId>
            <version>2.5.1</version>
</dependency>

工具类代码:

public class PinYinUtils {

    public static HanyuPinyinOutputFormat PINYIN_FORMAT;
    static {

        PINYIN_FORMAT = new HanyuPinyinOutputFormat();
        /**
         * 大小写设置
         *      LOWERCASE:小写
         *      UPPERCASE:大写
         */
        PINYIN_FORMAT.setCaseType(HanyuPinyinCaseType.LOWERCASE);
        /**
         * 输出音标设置
         *
         * WITH_TONE_MARK:直接用音标符(VCharType必须设置WITH_U_UNICODE,否则会抛出异常)
         * WITH_TONE_NUMBER:1-4数字表示音标
         * WITHOUT_TONE:没有音标
         */
        PINYIN_FORMAT.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
        /**
         * 特殊音符ü的设置
         * WITH_U_AND_COLON:用u表示(没有设置默认用u表示)
         * WITH_V:用v表示
         * WITH_U_UNICODE:用ü表示
         */
        PINYIN_FORMAT.setVCharType(HanyuPinyinVCharType.WITH_U_UNICODE);
    }

    /**
     *  取汉字的拼音首字母
     * @param chinese
     * @return
     */
    public static String toFirstPinYin(String chinese){
        StringBuilder result = new StringBuilder();
        //将字符串转成字符数组
        char[] chars = chinese.toCharArray();
        try {
            for (char c : chars) {
                //是中文则进行转换
                if(String.valueOf(c).matches("[\u4e00-\u9fa5]+")){
                    String[] pinyinStr = PinyinHelper.toHanyuPinyinStringArray(c, PINYIN_FORMAT);
                    result.append(pinyinStr[0].charAt(0));//取每个中文的第一个拼音字母
                }else {
                    result.append(c);
                }
            }
        } catch (BadHanyuPinyinOutputFormatCombination badHanyuPinyinOutputFormatCombination) {
            badHanyuPinyinOutputFormatCombination.printStackTrace();
        }
        return result.toString();
    }

    /**
     *  汉字转拼音小写
     * @param chinese
     * @return
     */
    public static String toPinYin(String chinese){
        //创建返回对象
        StringBuilder result = new StringBuilder();//方法调用的时候新建,对象没有共享,不会有线程安全问题。
        //将字符串转成字符数组
        char[] chars = chinese.toCharArray();
        try {
            for (char c : chars) {
                //是中文则进行转换
                if(String.valueOf(c).matches("[\u4e00-\u9fa5]+")){
                    String[] pinyinStr = PinyinHelper.toHanyuPinyinStringArray(c, PINYIN_FORMAT);
//                    result.append(pinyinStr[0].charAt(0));//取每个中文的第一个拼音字母
                    result.append(pinyinStr[0]);
                }else {
                    result.append(c);
                }
            }
        } catch (BadHanyuPinyinOutputFormatCombination badHanyuPinyinOutputFormatCombination) {
            badHanyuPinyinOutputFormatCombination.printStackTrace();
        }
        return result.toString();
    }
    /**
     *  汉字转拼音每个字符串的第一个字母大写其余小写
     * @param chinese
     * @return
     */
    public static String toUpperStringsFirstCharPinYin(String chinese){
        //创建返回对象
        StringBuilder result = new StringBuilder();//方法调用的时候新建,对象没有共享,不会有线程安全问题。
        //将字符串转成字符数组
        char[] chars = chinese.toCharArray();
        try {
            for (char c : chars) {
                //是中文则进行转换
                if(String.valueOf(c).matches("[\u4e00-\u9fa5]+")){
                    String[] pinyinStr = PinyinHelper.toHanyuPinyinStringArray(c, PINYIN_FORMAT);
//                    result.append(pinyinStr[0].charAt(0));//取每个中文的第一个拼音字母
                    String c1 = String.valueOf(pinyinStr[0]);
                    result.append(c1.substring(0,1).toUpperCase()).append(c1.substring(1));
                }else {
                    result.append(c);
                }
            }
        } catch (BadHanyuPinyinOutputFormatCombination badHanyuPinyinOutputFormatCombination) {
            badHanyuPinyinOutputFormatCombination.printStackTrace();
        }
        return result.toString();
    }

    public static void main(String[] args) {
        //测试StringBuilder是否有线程安全问题
        String str = "拼音工具lv";
        String pinYin = toUpperStringsFirstCharPinYin(str);
        System.out.println(pinYin);
    }
}

原文地址:https://www.cnblogs.com/8593l/p/12528471.html

时间: 2024-10-29 11:24:03

java汉字转拼音工具类的相关文章

java中常用的工具类(二)

下面继续分享java中常用的一些工具类,希望给大家带来帮助! 1.FtpUtil Java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71

java中常用的工具类

一.String工具类 package com.itjh.javaUtil; import java.util.ArrayList; import java.util.List; /** * * String工具类. <br> * * @author 宋立君 * @date 2014年06月24日 */ public class StringUtil { private static final int INDEX_NOT_FOUND = -1; private static final St

java汉字转拼音以及得到首字母通用方法

1. [代码]PingYinUtil    package oa.common.utils; import net.sourceforge.pinyin4j.PinyinHelper;import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;import net.sourceforge.pinyin4j.form

java汉字转换为拼音

原文:java汉字转换为拼音 代码下载地址:http://www.zuidaima.com/share/1550463275240448.htm 输入的字符串是:"这是一个中文" 运行结果: 标签: java 汉字 拼音 转化话题: 语言基础 脚本和工具

分享万能java字符串编码转换工具类

代码下载地址:http://www.zuidaima.com/share/1795356301560832.htm 原文:分享万能java字符串编码转换工具类 package com.zuidaima.util; import java.io.UnsupportedEncodingException; /** * 转换字符串的编码 */ public class ChangeCharset { /** 7位ASCII字符,也叫作ISO646-US.Unicode字符集的基本拉丁块 */ publ

Java学习-049-正则工具类

自去年九月份决定再次入学和职业资格进阶,开始备战二者考试至今,以及当下进行中的职称申请,犹如孤独的狼,不断前行在路上,而今凡凡总总的已历8月... 不感慨了,如下为一园友需要的正则工具类,直接上码: 1 public class RegUtils { 2 private static Logger logger = Logger.getLogger(RegUtils.class.getName()); 3 private static String msg = ""; 4 privat

java中常用的工具类(三)

继续分享java中常用的一些工具类.前两篇的文章中有人评论使用Apache 的lang包和IO包,或者Google的Guava库.后续的我会加上的!谢谢支持IT江湖 一.连接数据库的综合类 Java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53

java中常用的工具类(一)

我们java程序员在开发项目的是常常会用到一些工具类.今天我汇总了一下java中常用的工具方法.大家可以在项目中使用.可以收藏!加入IT江湖官方群:383126909 我们一起成长 一.String工具类 Java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 5

Java常用正则表达式验证工具类RegexUtils.java

原文:Java常用正则表达式验证工具类RegexUtils.java 源代码下载地址:http://www.zuidaima.com/share/1550463379442688.htm Java 表单注册常用正则表达式验证工具类,常用正则表达式大集合. 1. 电话号码 2. 邮编 3. QQ 4. E-mail 5. 手机号码 6. URL 7. 是否为数字 8. 是否为中文 9. 身份证 10. 域名 11. IP .... 常用验证应有尽有! 这的确是您从事 web 开发,服务器端表单验证