`

pinyin4j

    博客分类:
  • java
阅读更多
package cn.com.iotrust.common.util;

import org.apache.commons.lang.StringUtils;

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 Pinyin4jUtil {
    /**
     * 转为大写字母, 如:中国人民银行 =====>ZHONGGUORENMINYINHAN
     * @author lance
     * 2016年1月16日 下午4:56:07
     */
    public static String convertUpper(String text){
        return convert(text, HanyuPinyinCaseType.UPPERCASE, false);
    }

    /**
     * 转为小写字母, 如:中国人民银行 =====>zhongguorenminyinhang
     * @author lance
     * 2016年1月16日 下午4:56:07
     */
    public static String convertLower(String text){
        return convert(text, HanyuPinyinCaseType.LOWERCASE, false);
    }

    /**
     * 首字母大写, 如:中国人民银行 =====>ZhongGuoRenMinYinHang
     * @author lance
     * 2016年1月16日 下午5:04:11
     */
    public static String converCapitalize(String text){
        return convert(text, null, true);
    }

    /**
     * 所有中文的第一个字母大写, 如:中国人民银行 =====>ZGRMYH
     * @author lance
     * 2016年1月17日 下午10:16:19
     */
    public static String capitalizeLetter(String text){
        String c = converCapitalize(text);
        if(StringUtils.isBlank(c)) {
            return "";
        }
        return  c.replaceAll("[a-z]", "");
    }

    /**
     * 获取首字母, 如:中国人民银行 =====>Z
     * @author lance
     * 2016年1月17日 下午10:11:57
     */
    public static String firstLetter(String text){
        String c = converCapitalize(text);
        if(StringUtils.isBlank(c)) {
            return "";
        }

        return StringUtils.substring(c, 0, 1);
    }

    /**
     * 转为拼音
     * @param text          待转化的中文字符
     * @param caseType      转化类型, 即大写小写
     * @param isCapitalize  是否首字母大写
     * @author lance
     * 2016年1月17日 下午10:28:05
     */
    public static String convert(String text, HanyuPinyinCaseType caseType, boolean isCapitalize) {
        if(StringUtils.isBlank(text)){
            return "";
        }
        HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
        if(caseType != null) {
            format.setCaseType(caseType);
            isCapitalize = false;
        }

        format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
        format.setVCharType(HanyuPinyinVCharType.WITH_V);
        char[] input = StringUtils.trimToEmpty(text).toCharArray();
        StringBuilder builder = new StringBuilder();
        try {
            for (char c: input) {
                if (Character.toString(c).matches("[\\u4E00-\\u9FA5]+")) {
                    String[] temp = PinyinHelper.toHanyuPinyinStringArray(c, format);
                    if(isCapitalize) {
                        builder.append(StringUtils.capitalize(temp[0]));
                    }else {
                        builder.append(temp[0]);
                    }
                } else {
                    if(isCapitalize) {
                        builder.append(StringUtils.capitalize(Character.toString(c)));
                    }else {
                        builder.append(Character.toString(c));
                    }
                }
            }
        } catch (BadHanyuPinyinOutputFormatCombination ex) {
            ex.printStackTrace();
        }

        return builder.toString();
    }


}
分享到:
评论

相关推荐

    pinyin4j-2.5.0-API文档-中文版.zip

    赠送jar包:pinyin4j-2.5.0.jar; 赠送原API文档:pinyin4j-2.5.0-javadoc.jar; 赠送源代码:pinyin4j-2.5.0-sources.jar; 赠送Maven依赖信息文件:pinyin4j-2.5.0.pom; 包含翻译后的API文档:pinyin4j-2.5.0-...

    pinyin4j.zip pinyin4j.jar

    Pinyin4j是一个功能强悍的汉语拼音工具包,是sourceforge.net上的一个开源项目。 包里面有 pinyin4j.zip pinyin4j.jar 两种

    pinyin4j工具类和jar包

    Pinyin4j的基本用法 1. 简单介绍 有时候,需要将汉字编程对应的拼音,以方便数据的处理。比如在Android手机应用的开发上,要查询联系人的姓名,通常都是用拼音进行查询的。比如要查询“曹孟德”,就可以输入“cmd”...

    pinyin4j-2.5.0.jar

    网上下载的pinyin4j-2.5.0的jar包引入项目中,但是打包时出现了烦人的错误警告,如:com.hp.hpl.sparta.Node$1 that doesn’t come with an xxxxxx,com.hp.hpl.sparta.Sparta等。 其实不影响项目的正常使用,但是...

    pinyin4j-2.5.1.jar

    pinyin4j-2.5.1.jar、汉字转拼音 pinyin4j-2.5.1.jar、汉字转拼音 pinyin4j-2.5.1.jar、汉字转拼音

    pinyin4j(解决多音字问题源码)

    pinyin4j(解决多音字问题源码),pinyin4j源码没有解决多音字的问题,这是一个解决能解决多音字的pinyin4j源码,但是里面的词库不是很全,你可以根据自己的需要进行添加。

    pinyin4j.jar中文转拼音及多音字配置文件

    Java pinyin4j.jar中文转拼音 详细可查看我的博客https://me.csdn.net/Extraordinarylife 中《Java pinyin4j.jar中文转拼音 》

    pinyin4j最新jar包,汉字转pinyin必备

    pinyin4j最新jar包,包含反编译过的jar包源码文件,使用说明必看.

    pinyin4j.zip

    pinyin4j 工具类的jar包,基于maven的配置 <groupId>net.sourceforge.pinyin4j</groupId> <artifactId>pinyin4j <version>2.5.0 pinyin4j-2.5.0.jar pinyin4j-2.5.0.pom

    PinYin4jUtils PinYin4j使用案例

    PinYin4jUtils PinYin4j使用案例

    pinyin4j所需jar包

    pinyin4j-2.5.0.jar PinYin4jUtils.java PinYin4jUtils.java

    汉语转换成拼音的jar包pinyin4j-2.5.0版本

    Java中,汉语转换成拼音的jar包。放到项目下,直接引用pinyin4j-2.5.0.jar就行。或者直接放到maven本地资源文件下解压压缩包直接再项目配置文件中引用。

    pinyin4j.jar

    pinyin4j-2.5.0.jar

    pinyin4j-2.5.0.jar 下载 java汉字转拼音 jar包 附带超级简单小dome

    pinyin4j-2.5.0.jar用于将汉字转拼音,用于实际项目汉字排序、汉字分类等功能

    Pinyin4j的基本用法 - 玄机逸士的专栏 - 博客频道 - CSDN.NET.html

    Pinyin4j的基本用法 - 玄机逸士的专栏 - 博客频道 - CSDN.NET.html )

    pinyin4j-2.5.0.rar

    Pinyin4j是一个流行的Java库,支持中文字符和拼音之间的转换,拼音输出格式可以定制,在项目中经常会遇到需求用户输入汉字后转换为拼音的场景,这时候Pinyin4j就可以派上用场

Global site tag (gtag.js) - Google Analytics