maven 汉字转拼音

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sinat_33704704/article/details/86534300

Pom.xml文件

<dependency>

            <groupId>com.belerweb</groupId>

            <artifactId>pinyin4j</artifactId>

            <version>2.5.0</version>

  </dependency>

Util工具类

package com.XXX.util;

 

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;

 

/**

 * 汉字拼音工具类

 */

public class PinyinTool {

    HanyuPinyinOutputFormat format = null;

    public static enum Type {

        UPPERCASE,              //全部大写

        LOWERCASE,              //全部小写

        FIRSTUPPER              //首字母大写

    }

 

    public PinyinTool(){

        format = new HanyuPinyinOutputFormat();

        format.setCaseType(HanyuPinyinCaseType.UPPERCASE);

        format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);

    }

 

    public String toPinYin(String str) throws BadHanyuPinyinOutputFormatCombination{  

        return toPinYin(str, "", Type.UPPERCASE);

    }

 

    public String toPinYin(String str,String spera) throws BadHanyuPinyinOutputFormatCombination{

        return toPinYin(str, spera, Type.UPPERCASE);

    }

 

    /**

     * 将str转换成拼音,如果不是汉字或者没有对应的拼音,则不作转换

     * 如: 明天 转换成 MINGTIAN

     * @param str:要转化的汉字

     * @param spera:转化结果的分割符

     * @return

     * @throws BadHanyuPinyinOutputFormatCombination

     */

    public String toPinYin(String str, String spera, Type type) throws BadHanyuPinyinOutputFormatCombination {

        if(str == null || str.trim().length()==0)

            return "";

        if(type == Type.UPPERCASE)

            format.setCaseType(HanyuPinyinCaseType.UPPERCASE);

        else

            format.setCaseType(HanyuPinyinCaseType.LOWERCASE);

 

        String py = "";

        String temp = "";

        String[] t;

        for(int i=0;i<str.length();i++){

            char c = str.charAt(i);

            if((int)c <= 128)

                py += c;

            else{

                t = PinyinHelper.toHanyuPinyinStringArray(c, format);

                if(t == null)

                    py += c;

                else{

                    temp = t[0];

                    if(type == Type.FIRSTUPPER)

                        temp = t[0].toUpperCase().charAt(0)+temp.substring(1);

                    py += temp+(i==str.length()-1?"":spera);

                }

            }

        }

        return py.trim();

    }     

}

Main测试

package com.XXX.test;

 

import com.XXX.PinyinTool;

import comXXX.PinyinTool.Type;

 

/**

 * 测试拼音转化结果

 * @author liuyazhuang

 *

 */

public class PingyinToolTest {

       public static void main(String[] args) throws Exception{

              PinyinTool tool = new PinyinTool();

              System.out.println("哈哈哈的运行测试结果为====" + tool.toPinYin("哈哈哈", "", Type.LOWERCASE));

       }

}

猜你喜欢

转载自blog.csdn.net/sinat_33704704/article/details/86534300