JAVA汉字转拼音工具(pinyin4j)

pinyin4j是一个Java类库,支持将简体和繁体中文转换为拼音,包括多种发音和格式化选项。例如,它可以设置拼音的大小写、声调表示方式以及如何处理ü字符。使用方法简单,通过PinyinHelper的toHanyuPinyinStringArray方法即可实现转换。此外,还提供了一个工具类用于批量处理字符串的拼音转换。该项目可在官方下载地址获取,也可以通过Maven添加依赖。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

pinyin4j 介绍

pinyin4j 是一个支持将简体和繁体中文转换到成拼音的Java开源类库

  • 支持同一汉字有多个发音
  • 还支持拼音的格式化输出,比如第几声之类的,
  • 同时支持简体中文、繁体中文转换为拼音…使用起来也非常简单。

下面是其官方网址,其中提供了下载:官方下载地址

MAVEN 地址

<!-- https://mvnrepository.com/artifact/com.belerweb/pinyin4j -->
<dependency>
    <groupId>com.belerweb</groupId>
    <artifactId>pinyin4j</artifactId>
    <version>2.5.0</version>
</dependency>

常用方法

HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
// 控制大小写
// UPPERCASE:大写  (ZHONG)
// LOWERCASE:小写  (zhong)
defaultFormat.setCaseType(HanyuPinyinCaseType.UPPERCASE);
// WITHOUT_TONE:无音标  (zhong)
// WITH_TONE_NUMBER:1-4数字表示英标  (zhong4)
// WITH_TONE_MARK:直接用音标符(必须WITH_U_UNICODE否则异常)  (zhòng)
defaultFormat.setToneType(HanyuPinyinToneType.WITH_TONE_NUMBER);
// WITH_V:用v表示ü  (nv)
// WITH_U_AND_COLON:用"u:"表示ü  (nu:)
// WITH_U_UNICODE:直接用ü (nü)
defaultFormat.setVCharType(HanyuPinyinVCharType.WITH_U_UNICODE);
// oHanyuPinyinStringArray如果传入的字符不是汉字不能转换成拼音,那么会直接返回null。
String[] pinyin = PinyinHelper.toHanyuPinyinStringArray('重', defaultFormat);

工具类

public static String getPingYin(String inputStr) {
    if (inputStr == null || "".equals(inputStr))
        return "";

    HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
    format.setCaseType(HanyuPinyinCaseType.LOWERCASE);
    format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
    format.setVCharType(HanyuPinyinVCharType.WITH_V);

    StringBuilder pYStr = new StringBuilder();
    char[] input = inputStr.trim().toCharArray();
    try {
        for (int i = 0; i < input.length; i++) {
            if (Character.toString(input[i]).matches("[\\u4E00-\\u9FA5]+"))
                pYStr.append(PinyinHelper.toHanyuPinyinStringArray(input[i], format)[0]);
            else if (!(input[i] == ' '))//过滤空格
                pYStr.append(input[i]);
        }
    } catch (BadHanyuPinyinOutputFormatCombination e) {
        e.printStackTrace();
    }
    return pYStr.toString();
}

参考 :
https://sourceforge.net/projects/pinyin4j/files/
https://www.jianshu.com/p/57a6600d2862

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值