当前位置: 首页 > news >正文

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("马冬梅"));

相关文章:

  • 远程数据采集智能网关支持下的雨洪资源分布式监测网络搭建实践
  • Vue3.5 企业级管理系统实战(十九):菜单管理
  • WPF技巧-BindingProxy
  • MySQL故障排查
  • iOS 蓝牙开发中的 BT 与 BLE
  • map与set封装
  • 项目QT+ffmpeg+rtsp(三)——延迟巨低的项目+双屏显示
  • mysql故障排查与环境优化
  • 使用 Whisper 生成视频字幕:从提取音频到批量处理
  • 力扣面试150题--从前序与中序遍历序列构造二叉树
  • 九、异形窗口
  • Flask 与 Django 服务器部署
  • Django 项目中,将所有数据表注册到 Django 后台管理系统
  • C++(24):容器类<list>
  • 学习源码?
  • cmd里可以使用npm,vscode里使用npm 报错
  • OpenCv(7.0)——银行卡号识别
  • 中山大学具身智能体高效探索与精准问答!Beyond the Destination:面向探索感知的具身问答新基准
  • std::ranges::views::stride 和 std::ranges::stride_view
  • 2025年AI与网络安全的终极博弈:冲击、重构与生存法则
  • 海南医科大披露校内竞聘上岗结果:32名干部离开领导岗位,8人系落选
  • 多家国有大行存款利率即将迎来新一轮下调
  • 国家统计局:4月全国城镇调查失业率为5.1%,比上月下降0.1个百分点
  • 泽连斯基与美国副总统及国务卿会谈,讨论伊斯坦布尔谈判等问题
  • 官方数据显示:我国心血管疾病患者已超3亿人
  • 持续降雨存在落石风险,贵州黄果树景区水帘洞将封闭至6月初