java获取汉语拼音

获取汉语拼音

之前有个需求是要显示汉语拼音,然后找了一个工具包

xml 复制代码
<!-- 汉语拼音 -->
<dependency>
    <groupId>com.belerweb</groupId>
    <artifactId>pinyin4j</artifactId>
    <version>2.5.1</version>
</dependency>

来个栗子

java 复制代码
HanyuPinyinOutputFormat hanyuPinyinOutputFormat = new HanyuPinyinOutputFormat();
hanyuPinyinOutputFormat.setToneType(WITHOUT_TONE);
System.out.println(PinyinHelper.toHanYuPinyinString("北京市", hanyuPinyinOutputFormat, "", true));

// 输出 beijingshi

但是有时候是多音字的怎么处理的,比如长沙市

java 复制代码
HanyuPinyinOutputFormat hanyuPinyinOutputFormat = new HanyuPinyinOutputFormat();
hanyuPinyinOutputFormat.setToneType(WITHOUT_TONE);
System.out.println(PinyinHelper.toHanYuPinyinString("长沙市", hanyuPinyinOutputFormat, "", true));

// 输出 zhangshashi

这结果也不对呀

多音字处理

当然是有解决方案的,该工具提供了一个外挂,可以自定义一些词的多音字组合

如我配置了长沙在一块的话读changsha

scss 复制代码
长沙 (chang2,sha1)

然后使用该外挂

java 复制代码
HanyuPinyinOutputFormat hanyuPinyinOutputFormat = new HanyuPinyinOutputFormat();
hanyuPinyinOutputFormat.setToneType(WITHOUT_TONE);
MultiPinyinConfig.multiPinyinPath=Thread.currentThread().getContextClassLoader().getResource("pinyindb/multipy.txt").getPath();
System.out.println(PinyinHelper.toHanYuPinyinString("长沙市", hanyuPinyinOutputFormat, "", true));

// 输出  changshashi

后续的多音字直接在该文件中加入就行

参考文献

相关推荐
良许Linux1 小时前
FPGA原理和应用
stm32·单片机·fpga开发·程序员·嵌入式·编程
阿里嘎多学长6 小时前
2026-02-15 GitHub 热点项目精选
开发语言·程序员·github·代码托管
王飞飞不会飞16 小时前
2025:安宁幸福
程序员
宋小黑20 小时前
PDFsam Basic:轻量开源的 PDF 拆分合并利器
程序员
宋小黑21 小时前
Freeplane:免费开源的思维导图神器,打造个人知识管理系统
程序员
ChenYY~21 小时前
入门分享篇:一、工欲善其事,必先利其器
计算机·程序员·机器人·嵌入式·typora·工具·软件开发·obsidian
前端付豪1 天前
LangChain 模型I/O:输入提示、调用模型、解析输出
人工智能·程序员·langchain
北桥苏1 天前
我的2025年终总结,回归过程
程序员
阿里嘎多学长1 天前
2026-02-14 GitHub 热点项目精选
开发语言·程序员·github·代码托管
宋小黑2 天前
别干到眼瞎! 用 CareUEyes Pro 告别屏幕疲劳
程序员