Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Java实现汉字转拼音,多音字处理

Java实现汉字转拼音,多音字处理

作者头像
程序猿川子
发布于 2023-04-25 09:27:16
发布于 2023-04-25 09:27:16
1.8K01
代码可运行
举报
运行总次数:1
代码可运行

背景: 之前一直是前端直接调用公司公共城市组件获取城市列表,现在由于公共组件不再支持,需要由后端接口提供城市查询,并且按照城市首字母分组展示。

后端实现: 最开始选择pinyin4j来实现,但发现对多音字的处理不太友好,比如需要转重庆的拼音(可以看到结果并不是我们想要的):

解决方法就需要自己定义多音字字典来实现,解析这个文件优先从这个文件中获取拼音,类似如下文件(字典格式可自行定义):

以上自己定义字典的方式比较麻烦,经过在网上的一顿搜索,发现可以使用具有语义的依赖包(底层也是用的自定义字典实现):

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<dependency>
    <groupId>com.hankcs</groupId>
    <artifactId>hanlp</artifactId>
    <version>portable-1.8.3</version>
</dependency>
复制代码

在项目中定义一个工具类:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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));
    }
}
复制代码

结果演示:

更多方法使用:

好了,到此结束。简单直接,没有一个字是多余的。😄

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Java 汉字转拼音 (巨简单版)
在日常开发中,我们难免会遇到需要将汉字转化成拼音的场景,最开始我在网上搜到了利用Pinyin4j 实现汉字转拼音,但是对于多音字问题采取的是组合拼音方式,例如长沙 取拼音结果就是 changsha zhangsha。 Pinyin4j对于多音字的处理就是自己写一个多音字的txt文档,将多音字该发的读音放入,但这难免有些麻烦,于是我便有找到了一种方法,可以更简单的实现该功能
用户11325910
2024/10/31
2300
Java 汉字转拼音 (巨简单版)
汉字转拼音
在下是首席架构师
2024/07/20
2530
汉字转拼音
Pinyin4j简单使用教程
本文链接:https://blog.csdn.net/u014427391/article/details/97518614
SmileNicky
2019/08/29
3.5K0
java获取汉字首字母以及全拼字母_excel中提取汉字首字母
使用Hutool工具类 官网链接 以下为Hutool支持的拼音库的pom坐标,你可以选择任意一个引入项目中,如果引入多个,Hutool会按照以上顺序选择第一个使用。
全栈程序员站长
2022/11/02
1.8K0
Java 汉字转拼音
因为用户前台输入的是汉字, 但是在创建图数据库的Tag节点的时候, 虽然能用中文, 但是我觉得还是不要用了, 就像是Java也能定义中文的类和字段一样奇怪, 但是又没有翻译API, 也可能又网络的问题, 综合考虑, 可以直接转为汉字拼音
彼岸舞
2022/08/24
3.5K0
Java 汉字转拼音
Java 读取汉字拼音
​pom.xml导入pinyin4j的依赖 <dependency> <groupId>com.belerweb</groupId> <artifactId>pinyin4j</artifactId> <version>2.5.1</version> </dependency> 汉字转拼音工具类 package org.fh.util; import net.sourceforge.pinyin4j.PinyinHe
FHAdmin
2021/06/29
2.9K0
JPinYin,一个汉字拼音转换的利器,你值得拥有
在某些场景中,可能为了方便用户快速搜索,使用拼音首字母的方式进行检索。举个例子,一个系统支持拼音首字母检索,那么输入hzlj就可以搜索出杭州龙井等商品结果,系统中提供一个字段用于存储拼音字母组合即可。(呃~~,在这里我们不讨论为什么不用索引进行检索等,只是给出一个case说明)。
孟君
2019/08/26
4.4K0
JPinYin,一个汉字拼音转换的利器,你值得拥有
汉字转拼音工具JPinyin的介绍和使用示例
JPinyin对汉字转拼音的支持,主要是通过预定的字典文件实现的。Jpinyin预定义了三个字典文件,如下图所示:
孟君
2023/02/23
3.6K0
汉字转拼音工具JPinyin的介绍和使用示例
中文转拼音
时间最不偏私,给任何人都是二十四小时;时间也最偏私,给任何人都不是二十四小时。──赫胥黎 引入依赖 <dependency> <groupId>com.belerweb</groupId> <artifactId>pinyin4j</artifactId> <version>2.5.0</version> </dependency> 编写代码 package com.ruben.utils; import net.sourceforge.pinyin4j.PinyinHelp
阿超
2022/08/16
5.3K0
中文转拼音
汉字转拼音工具
maven引入:<dependency><groupId>com.belerweb</groupId><artifactId>pinyin4j</artifactId><version>2.5.0</version></dependency>
JQ实验室
2022/02/09
2.6K0
汉语言处理工具pyhanlp的拼音转换与字符正则化
l HanLP不仅支持基础的汉字转拼音,还支持声母、韵母、音调、音标和输入法首字母首声母功能。
IT小白龙
2019/03/29
8620
汉语言处理工具pyhanlp的拼音转换与字符正则化
使用Pinyin4j进行拼音分词
使用maven引入相关的jar <dependency> <groupId>com.belerwebgroupId> <artifactId>pinyin4jartifactId> <version>2.5.1version> dependency> 创建Pinyin4jUtil package com.os.core.util.solr; import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.
allsmallpig
2021/02/12
1.3K0
pythoin pypinyin汉字转拼音库使用
image.png pypinyin 将汉字转为拼音。可以用于汉字注音、排序、检索 。 Documentation: http://pypinyin.rtfd.io GitHub: https://github.com/mozillazg/python-pinyin 特性 根据词组智能匹配最正确的拼音。 支持多音字。 简单的繁体支持, 注音支持。 支持多种不同拼音风格。 安装 $ pip install pypinyin 验证是否安装成功: image.png 使用说明 >>> from pypinyi
李小白是一只喵
2020/04/23
2.8K0
pythoin  pypinyin汉字转拼音库使用
Java工具集-拼音工具类
添加依赖 <!--汉语拼音工具--> <dependency> <groupId>com.belerweb</groupId> <artifactId>pinyin4j</artifactId> <version>2.5.0</version> </dependency> 代码示例 package com.simple.util.base.extend; import net.sourc
cwl_java
2020/06/11
1.5K0
前端中文汉字转拼音
这次要推荐一个在前端就能实现 汉字转拼音 的工具库 —— pinyin-pro 。
德育处主任
2022/10/28
5.8K0
前端中文汉字转拼音
汉字转拼音的工具类
平常是处理文字的时候更多用到的是字符串方面的工具类,作为学习汉字的工具,拼音还是很重要的一个辅助方式,分享一个汉字转拼音的工具类。可以用于帮助学习汉字或者作为一些汉字的辅助说明都也是可以的。这个还支持将汉字拼音输出为首字母,例如"愷龍"可以输出为"kl",在现在大家很多时候都用缩写的情况下,可以也可以作为一个辅助的工具。
愷龍
2022/11/22
1.9K0
汉字转拼音的工具类
小程序上实现汉字转拼音及提取首字母
2.在开发者工具中,对着小程序端的项目目录【miniprogram】选中后鼠标右键,选择【在终端中打开】
许坏
2020/03/26
9.4K1
小程序上实现汉字转拼音及提取首字母
一个开源的.NET环境下使用的拼音-汉字互转库
今天给大家推荐一个开源的.NET环境下使用的拼音-汉字互转库Pinyin4NET。Pinyin4NET环境支持从.Net4.0到netcore3.1、netstandard2.1。
郑子铭
2023/10/23
4530
一个开源的.NET环境下使用的拼音-汉字互转库
汉字转拼音项目pinyin-plus开源
项目地址:https://github.com/TapTap/pinyin-plus
kl博主
2023/11/18
4310
Hutool该怎么用?
在日常开发中,我们会使用很多工具类来提升项目开发的速度,而国内用的比较多的 Hutool 框架,就是其中之一。
程序猿川子
2024/05/21
3150
Hutool该怎么用?
相关推荐
Java 汉字转拼音 (巨简单版)
更多 >
领券
💥开发者 MCP广场重磅上线!
精选全网热门MCP server,让你的AI更好用 🚀
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验