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

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

参考文献

相关推荐
AI大模型1 小时前
【连载】零基础跟我学做AI Agent(第4课:用Autogen开发一个学霸Agent)
程序员·llm·agent
程序员鱼皮4 小时前
干掉 Draw.io,这个程序员画图神器杀疯了!
图像处理·计算机·程序员·软件开发·编程经验
CodeSheep6 小时前
这个知名编程软件,正式宣布停运了!
前端·后端·程序员
SimonKing6 小时前
镜像拉不下来怎么办?境内Docker镜像状态在线监控来了
java·后端·程序员
阿里嘎多学长6 小时前
2025-12-11 GitHub 热点项目精选
开发语言·程序员·github·代码托管
创码小奇客20 小时前
《梅雨季的除湿量》
程序员·创业·电子书
Jing_Rainbow1 天前
【AI-9/Lesson30(2025-11-12)】AI + Vibe Coding:Hulk 浏览器扩展开发全解析 —— 从需求文档到实战的完整指南🌈
前端·人工智能·程序员
文心快码BaiduComate1 天前
CCF程序员大会码力全开:AI加速营决赛圆满落幕,大奖花落谁家?
前端·后端·程序员
大模型教程1 天前
保姆级教程:从0手写RAG智能问答系统,接入Qwen大模型|Python实战
程序员·llm·agent