首页 > 编程语言 >java获取汉语拼音

java获取汉语拼音

时间:2024-12-03 18:10:10浏览次数:3  
标签:System 多音字 java 汉语拼音 hanyuPinyinOutputFormat 获取 PinyinHelper HanyuPinyinOutputFo

获取汉语拼音

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

<!-- 汉语拼音 -->
<dependency>
    <groupId>com.belerweb</groupId>
    <artifactId>pinyin4j</artifactId>
    <version>2.5.1</version>
</dependency>

来个栗子

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

// 输出 beijingshi

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

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

// 输出 zhangshashi

这结果也不对呀

多音字处理

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

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

长沙 (chang2,sha1)

然后使用该外挂

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

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

参考文献

本文由mdnice多平台发布

标签:System,多音字,java,汉语拼音,hanyuPinyinOutputFormat,获取,PinyinHelper,HanyuPinyinOutputFo
From: https://www.cnblogs.com/life-time/p/18584684

相关文章

  • 计算机毕业设计必看必学96341+springboot养老院信息管理系统原创定制程序单片机,java
    目  录1绪论1.1研究背景和意义1.2开发意义1.3论文结构与章节安排2 养老院信息管理系统系统分析2.1可行性分析2.1.1技术可行性分析2.1.2 经济可行性分析2.1.3法律可行性分析2.2系统功能分析2.2.1功能性分析2.2.2非功能性分析2.3 系统用......
  • 计算机毕业设计必看必学20599+springboot便利店管理系统原创定制程序单片机,java、PHP
    目  录摘要1绪论1.1课题目的与意义1.2国内外研究现状1.3论文结构与章节安排1.4Springboot框架介绍2 Springboot便利店管理系统系统分析2.1可行性分析2.1.1技术可行性分析2.1.2经济可行性分析2.1.3操作可行性分析2.2 系统功能分析2.2.1......
  • Java跨平台/可移植
    在探讨Java语言的特性时,其跨平台/可移植性无疑是一个核心亮点。以下是对Java跨平台/可移植性的详细阐述:一、Java跨平台/可移植性的概念Java语言的跨平台/可移植性指的是Java程序可以在不同的操作系统和硬件平台上运行,而无需对源代码进行修改或重新编译。这一特性使得Java......
  • JAVA NIO零拷贝实现
    文章目录JAVANIO零拷贝实现MappedByteBufferDirectByteBufferFileChannelJAVANIO零拷贝实现零拷贝通常通常指网络发送文件时,不需要把文件内容拷贝到用户空间,而直接在内核空间中传输到网络方式。通过减少不同内存区域的拷贝,减低CPU的消耗。javaNIO中**通道相当......
  • java定时任务cron表达式
    .常用cron表达式例子  (1)0/2****?表示每2秒执行任务  (1)00/2***?表示每2分钟执行任务  (1)0021*?表示在每月的1日的凌晨2点调整任务  (2)01510?*MON-FRI表示周一到周五每天上午10:15执行作业  (3)01510?6L2002-2006表示2002-2......
  • 【JavaEE初阶】落霞与孤鹜齐飞,秋水共长天一色 - (重点)线程
    本篇博客给大家带来的是线程的知识点,由于时间有限,分三天来写,本篇为线程第二篇.......
  • 怎么自己创建一个网站? 开发语言首选 java,使用CMS网站内容管理系统是不错的选择
    怎么自己创建一个网站推荐使用JavaCMS网站内容管理系统,根据网站规划的功能模块,创建不同的页面风格;文章目录怎么自己创建一个网站一、规划网站1.1确定网站主题和目的1.2规划网站结构和内容二、注册域名2.1选择域名注册商2.2查找并注册合适的域名三、选择网站托管......
  • 大厂Java面试经验套路总结
    前几天,跟个老朋友吃饭,他最近想跳槽去大厂,觉得压力很大,问我能不能分享些所谓的经验套路。每次有这类请求,都觉得有些有趣,不知道你发现没有大家身边真的有很多人不知道怎么面试,也不知道怎么准备面试,哪怕是一些工龄比较长的“老开发”:有的人明知道有些问题肯定会被问,面试前还不......
  • shell编程作业,获取ipv4的地址+crontab定时任务+无限重启Linux+⽤Shell写⼀个计算器+⽤
    公众号:泷羽Sec-尘宇安全声明!学习视频来自B站up主泷羽sec有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关,切勿触碰法律底线,否则后果自负!!!!有兴趣的小伙伴可以点击......
  • [Javascript] Dealing with Number in Javascript
    Writebignumber//NOT100000//Better100_0001e5 Shorthandssyntaxforfloatingnumber//Normal0.123//Thesame.123//eXalsoapplytofloatingnumber3.14e10//31400000000console.log(0.123e10===.123e10)//true 8进制Startwith0⚠️ ......