ava实现汉字转拼音,多音字处理
背景:
之前一直是前端直接调用公司公共城市组件获取城市列表,现在由于公共组件不再支持,需要由后端接口提供城市查询,并且按照城市首字母分组展示。
后端实现:
最开始选择pinyin4j来实现,但发现对多音字的处理不太友好,比如需要转重庆的拼音(可以看到结果并不是我们想要的):
解决方法就需要自己定义多音字字典来实现,解析这个文件优先从这个文件中获取拼音,类似如下文件(字典格式可自行定义):
以上自己定义字典的方式比较麻烦,经过在网上的一顿搜索,发现可以使用具有语义的依赖包(底层也是用的自定义字典实现):
<dependency><groupId>com.hankcs</groupId><artifactId>hanlp</artifactId><version>portable-1.8.3</version>
</dependency>
复制代码
在项目中定义一个工具类:
public class PinyinUtil {/*** 获取中文完整拼音** @param chineseStr* @return*/public static String getPinyin(String chineseStr) {List<Pinyin> pinyins = PinyinDictionary.convertToPinyin(chineseStr);StringBuilder stringBuilder = new StringBuilder();for (Pinyin pinyin : pinyins) {stringBuilder.append(pinyin.getPinyinWithoutTone());}return stringBuilder.toString();}/*** 获取中文拼音首字母** @param chineseStr* @return*/public static String getInitial(String chineseStr) {List<Pinyin> pinyins = PinyinDictionary.convertToPinyin(chineseStr);if (CollectionUtils.isEmpty(pinyins)) {return StringUtils.EMPTY;}return String.valueOf(pinyins.get(0).getPinyinWithoutTone().charAt(0));}
}
复制代码
结果演示:
更多方法使用:
好了,到此结束。简单直接,没有一个字是多余的。
ava实现汉字转拼音,多音字处理相关推荐
- PHP高性能输出UNICODE正则汉字列表 汉字转拼音多音字解决方案 搜索引擎分词细胞词库更新 搜狗词库提取TXT...
为什么80%的码农都做不了架构师?>>> 目前现状 汉字转拼音 难度大就大在 多音字!行业上较准确的是基于词语.成语的识别.搜狗有1万多词库 每个词库又很大: 比如: 了 我们 ...
- Java pinyin4j 汉字转拼音包括——多音字
Java汉字转拼音(包括多音字) 有个需求需要把汉字转拼音,我的小伙伴推荐用Unicode官方的包:下载有些慢. 实际中用了Java工具包:pinyin4j解决 可以转汉字,多音字,多音字的地方要求不 ...
- android 汉字转字节,android实现汉字转拼音功能 带多音字识别
android 汉字转拼音带多音字识别功能,供大家参考,具体内容如下 问题来源 在做地名按首字母排序的时候出现了这样一个bug.长沙会被翻译拼音成zhangsha,重庆会被翻译拼音成zhong qin ...
- 汉字转拼音,一二级词库,不支持多音字
GB2312标准共收录6763个汉字,其中一级汉字3755个,二级汉字3008个. 分区表示 GB 2312中对所收汉字进行了"分区"处理,每区含有94个汉字/符号.这种表示方式 ...
- thinkphp5整合系列之汉字转拼音完美支持多音字
thinkphp5整合系列之汉字转拼音完美支持多音字 1.进入thinkphp5项目的根目录,用composer 安装扩展 2.接下来需要做的事就是在控制器中引入 /vendor/overtrue/p ...
- 汉字转换拼音首字母(可以处理部分多音字)
一.前言 汉字转拼音貌似一直是C#开发的一个难题,无论什么方案都有一定的bug,之前使用了两种方案. 1.Chinese2Spell.cs 一些不能识别的汉字全部转为Z 2.Microsoft Vis ...
- Java 汉字转拼音 完整代码实例(包含多音字解决方案)
汉字转换拼音的方法是使用到一个库:pinyin4j 下载地址: https://download.csdn.net/download/pengfei1990/15562432 maven依赖 < ...
- java 判断汉字音调_JAVA实现汉字转换为拼音 自动识别常用多音字 JPinyin
JAVA实现汉字转换为拼音 自动识别常用多音字 JPinyin 使用JPinyin,可以实现汉字转换为拼音,并自动识别常用多音字,还支持简体转换为繁体,检查是否为简体,是否为繁体,是否为中文字符等功能 ...
- 中文转拼音 java_java汉字转拼音 - java-苦苦甜甜的个人空间 - OSCHINA - 中文开源技术交流社区...
ava汉字转拼音,主要是利用pinyin4j工具实现,有些场合,可能会用到汉字转换成拼音的功能,下面是具体的代码. import net.sourceforge.pinyin4j.PinyinHelp ...
最新文章
- Sublime-text theme 颜色主题
- Linux系统主要目录及作用
- 怎么使图表居中显示_文字怎么排版又精美又好看?
- Ansible YML语法
- Android中的颜色
- 小苗快速培养盆景苗方法_九里香盆景的制作与养护
- 设计模式:各个模式间的对比
- 职业发展鉴定方法:第一行:自己行 第二行:大家说你行 第三行:领导行 就这么简单,去努力吧,如果你做到了这三个行,那么你肯定行...
- 一个富二代仅凭“1+1”就压制了全世界的数学家两个世纪......
- python中列表,元组,字符串如何互相转换
- mysql 中文乱码解决方法
- 学习C++,知识点太多记不住怎么办?
- JSP中 input type 用法
- kafka监听topic消费_分布式专题|最近一直死磕kafka设计原理,都肝吐了
- cartographer代码流程分析
- 项目上线工作流程梳理
- 【设计模式】建造者模式
- Qgis教程4:文本数据的加载
- 提取html string,c#从html中提取文本
- 华盛顿大学西雅图 计算机科学 申请条件,华盛顿大学西雅图分校申请有哪些条件...