maven 汉字转拼音

这篇博客介绍了如何在Maven项目中利用Pinyin4j库进行汉字到拼音的转换。通过在Pom.xml文件中添加依赖,然后创建一个Util工具类,使用PinyinHelper提供的方法将汉字转换为不同格式的拼音。在Main测试类中,展示了如何调用工具类进行测试,将字符串“哈哈哈”转换为小写拼音。

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));

       }

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值