Java实现汉字转拼音,多音字处理,简单明了
背景:
之前一直是前端直接调用公司公共城市组件获取城市列表,现在由于公共组件不再支持,需要由后端接口提供城市查询,并且按照城市首字母分组展示。
后端实现:
最开始选择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));}
}
结果演示:
更多方法使用:
好,到此结束。简单直接,没有一个字是多余的。
Java实现汉字转拼音,多音字处理,简单明了相关推荐
- JAVA实现汉字转换为拼音 pinyin4j/JPinyin
转载自 JAVA实现汉字转换为拼音 pinyin4j/JPinyin 在项目中经常会遇到需求用户输入汉字后转换为拼音的场景,比如说通讯录,就会要求按名字首字符发音排序,如果自己写实现这方面的功能是个 ...
- 【Java】汉字转拼音
[Java]汉字转拼音 将汉字转成拼音及汉字首字母,可以使用jar包 pingyin4j,但是遇到多音节汉字就会有问题.如果使用大名鼎鼎的jpinyin,可以自动识别常见多音字,而且还支持简体转换为繁 ...
- java 实现汉字转换拼音_JAVA实现汉字转拼音功能代码实例
JAVA中汉字转拼音的方法并不复杂,可以使用pinyin4j包来实现. 一.下载pinyin4j的架包,并导入项目中,如下: 如果是maven项目,maven依赖如下: com.belerweb pi ...
- java实现汉字转为拼音
java实现汉字转为拼音: 1.需要导入pinyin4j.jar package com.loo.pinyin; import net.sourceforge.pinyin4j.PinyinHelpe ...
- java 实现汉字转换拼音_Java实现汉字转换为拼音
# re: Java实现汉字转换为拼音 2006-11-24 15:06 芦苇 JAVA将汉字转化成拼音的方法 /** *//** ################################## ...
- java 实现汉字转拼音,java汉字简体转繁体 java汉字繁体转简体
java 实现汉字转拼音,java汉字简体转繁体 java汉字繁体转简体 一.前言 java实现汉字转拼音,我的思路是需要一个字符和拼音的映射库."我"=wo,"们&qu ...
- Java pinyin4j 汉字转拼音包括——多音字
Java汉字转拼音(包括多音字) 有个需求需要把汉字转拼音,我的小伙伴推荐用Unicode官方的包:下载有些慢. 实际中用了Java工具包:pinyin4j解决 可以转汉字,多音字,多音字的地方要求不 ...
- Java中汉字转拼音pinyin4j的用法
pinyin4j 是一个支持将简体和繁体中文转换到成拼音的Java开源类库: 依赖jar包导入 <!-- pinyin4j 汉语转拼音 --><dependency><g ...
- java pinyin4j_Java汉字转拼音pinyin4j用法详解
一.工具介绍 pinyin4j 是一个支持将简体和繁体中文转换到成拼音的Java开源类库: 1. 功能 支持同一汉字有多个发音 还支持拼音的格式化输出,比如第几声之类的, 同时支持简体中文.繁体中文转 ...
- 汉字转拼音之Jpinyin 简单使用
JPinyin是一个汉字转拼音的Java开源类库,在PinYin4j的功能基础上做了一些改进. [JPinyin主要特性] 1.准确.完善的字库: Unicode编码从4E00-9FA5范围及3007 ...
最新文章
- layoutSubviews何时被调用
- 二十万字C/C++、嵌入式软开面试题全集宝典八
- Android CTS 测试总结【转】
- Ansible系列--Copy模块
- PaperWeekly 第十一期
- 嵌入式开发有年龄限制吗_报名深圳成考有年龄限制吗?
- 推荐系统学习(一)推荐系统分类与基本流程
- 三星Galaxy Note10系列带壳渲染图曝光:将取消3.5mm耳机孔
- 回归分析beta值的标准_读懂回归分析-SPSS为例(无广告)
- js调用php会提前加载,为什么js代码里调用了php变量运行就明显变慢了
- 两个文本框异动任何一个能即时更新计算结果
- Dubbo 的设计思想,真优秀!
- PbootCMS插件自动采集伪原创免费插件
- 怎么看计算机电源型号,电脑电源铭牌怎么看?台式机电源铭牌知识扫盲 拒绝虚标!...
- 文件服务器整机克隆,克隆云服务器到本地
- 楼道扶手智能清洁装置的制作分享
- 道一云OA系统排名?道一云OA办公系统怎么选?什么是用户口碑最好的道一云OA系统?
- vue-element-admin 的使用记录(三)
- 关于JVM参数-XX:SurvivorRatio的理解
- MySQL中查询和删除重复行