欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 维修 > SpringBoot 中文转拼音 Pinyin4j库 拼音转换 单据管理 客户管理

SpringBoot 中文转拼音 Pinyin4j库 拼音转换 单据管理 客户管理

2025/5/20 21:29:21 来源:https://blog.csdn.net/dpc5201314/article/details/148072913  浏览:    关键词:SpringBoot 中文转拼音 Pinyin4j库 拼音转换 单据管理 客户管理

介绍

在客户管理系统中部分客户的名字会有生僻字为了沟通时候不叫错客户的名称,因此决定将客户名称的拼音一起返回给前端,也可以直接交给前端去处理。这里介绍后端的做法

Pinyin4j 是一个用于将汉字转换为拼音的 Java 库。在需要对中文文本进行拼音转换、拼音排序、拼音检索等功能。

依赖

<dependency><groupId>com.belerweb</groupId><artifactId>pinyin4j</artifactId><version>2.5.1</version>
</dependency>

工具类

public class PinYinUtils {/*** 将中文转换为拼音** @param chinese 中文字符串* @return 拼音字符串*/public static String toPinyin(String chinese) {HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();/**setVCharType: 设置拼音中“ü”的输出方式。*   HanyuPinyinVCharType.WITH_U_AND_COLON: 输出为“u:”(例如“ü”变成“u:”)*   HanyuPinyinVCharType.WITH_V: 输出为“v”(例如“ü”变成“v”)*   HanyuPinyinVCharType.WITH_U_UNICODE: 输出为“ü”字符(例如“ü”保持不变)* */format.setVCharType(HanyuPinyinVCharType.WITH_U_UNICODE);/**setToneType: 设置声调的类型,常见的类型有:* HanyuPinyinToneType.WITH_TONE_MARK: 带声调标记(例如“pī”)* HanyuPinyinToneType.WITHOUT_TONE: 不带声调(例如“pi”)* HanyuPinyinToneType.WITH_TONE_NUMBER: 使用数字表示声调(例如“pi1”)* */format.setToneType(HanyuPinyinToneType.WITH_TONE_MARK);/**** HanyuPinyinCaseType.UPPERCASE: 大写字母* HanyuPinyinCaseType.LOWERCASE: 小写字母*/format.setCaseType(HanyuPinyinCaseType.LOWERCASE);StringBuilder pinyin = new StringBuilder();for (char c : chinese.toCharArray()) {/**** ^[\u2E80-\u9FFF]+$ 匹配所有东亚区的语言* ^[\u4E00-\u9FFF]+$ 匹配简体和繁体* ^[\u4E00-\u9FA5]+$ 匹配简体*/if (Character.toString(c).matches("[\\u4E00-\\u9FFF]")) { // 判断是否为中文try {String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(c, format);if (pinyinArray != null && pinyinArray.length > 0) {pinyin.append(pinyinArray[0]).append(" ");;}} catch (BadHanyuPinyinOutputFormatCombination e) {e.printStackTrace();}} else {pinyin.append(c);}}return pinyin.toString();}}

使用

System.out.println(PinYinUtils.toPinyin("马冬梅"));

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词