博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java 汉字转拼音
阅读量:6833 次
发布时间:2019-06-26

本文共 3918 字,大约阅读时间需要 13 分钟。

先决条件:

pinyin4j.jar(Pinyin4j是一个流行的Java库,支持中文字符和拼音之间的转换。拼音输出格式可以定制。)

下载地址:http://pan.baidu.com/share/link?shareid=3958741959&uk=3792676205

PinyinUtil.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 inputStr     * @return 汉字拼音     */    public static String getPinYin(String inputStr) {        HanyuPinyinOutputFormat hpFormat = new HanyuPinyinOutputFormat();        hpFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);// 小写        hpFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);        hpFormat.setVCharType(HanyuPinyinVCharType.WITH_V);        char[] input = inputStr.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], hpFormat);                    output += temp[0];                } else {                    output += input[i];                }            }        } catch (Exception 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);        defaultFormat.setVCharType(HanyuPinyinVCharType.WITH_V);        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));                    } else {                        pybf.append(arr[i]);                    }                } catch (BadHanyuPinyinOutputFormatCombination e) {                    e.printStackTrace();                }            }        }        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);        defaultFormat.setVCharType(HanyuPinyinVCharType.WITH_V);        try {            for (int i = 0; i < arr.length; i++) {                if (arr[i] > 128) {                    pybf.append(PinyinHelper.toHanyuPinyinStringArray(arr[i],                            defaultFormat)[0]);                } else {                    pybf.append(arr[i]);                }            }        } catch (BadHanyuPinyinOutputFormatCombination e) {            e.printStackTrace();        }        return pybf.toString();    }

test.java

public class test {            public static void main(String[] args) {        String result = getPinYin("赠送");        System.out.println(result);    }}

 

转载于:https://www.cnblogs.com/zengsong-restService/p/3267238.html

你可能感兴趣的文章
DNS故障处理一例(转)
查看>>
12月14日中国域名商解析量17强:易名增幅最大
查看>>
常见的WebPack文件、什么是WebPack
查看>>
DVD刻录机的使用与维护
查看>>
构建Postfix邮件系统(二) -- SMTP认证发信+SquirrelMail
查看>>
Oracle 使用concat函数需要注意的地方
查看>>
条件测试
查看>>
linux磁盘管理
查看>>
线上部署链路聚合bonding
查看>>
学LIUNX的常用英语补习
查看>>
单点登录CAS解决方案<一>:纯净CAS-Server
查看>>
Mysql 数据库表区分大小写问题
查看>>
什么是openstack的metadata
查看>>
原创:SecureCRT连接linux终端颜色配置
查看>>
java关键字--this
查看>>
SDL_AudioSpec结构体分析
查看>>
Autoconf和Automake,自动生成Makefile
查看>>
观影《寒战》
查看>>
create instance 生成创建虚拟机从nova到调用libvirt流程(pycharm debug):
查看>>
今天的学习
查看>>