java如何把汉字转拼音
在项目中很多小伙伴会用到汉字转拼音功能需求,在这里给大家分享一个jar包:pinyin4j;
第一步:
pom中添加依赖
<dependency><groupId>com.belerweb</groupId><artifactId>pinyin4j</artifactId><version>2.5.0</version>
</dependency>
第二步:
测试
@Testpublic void test02(){String[] ni = PinyinHelper.toHanyuPinyinStringArray('你');System.out.println(ni[0]);//打印:ni3 解释:ni是拼音 3是音调}
给大家提供一个工具类
/*** 拼音工具类** @Author: Wangzhen* @Date: 2020-03-06 14:15* @Description: */
public final class ChineseCharacterUtil {/*** 获取汉字首字母或全拼大写字母** @param chinese 汉字* @param isFull 是否全拼 true:表示全拼 false表示:首字母* @return 全拼或者首字母大写字符窜*/public static String getUpperCase(String chinese, boolean isFull) {return convertHanzi2Pinyin(chinese, isFull).toUpperCase();}/*** 获取汉字首字母或全拼小写字母** @param chinese 汉字* @param isFull 是否全拼 true:表示全拼 false表示:首字母* @return 全拼或者首字母小写字符窜*/public static String getLowerCase(String chinese, boolean isFull) {return convertHanzi2Pinyin(chinese, isFull).toLowerCase();}/*** 将汉字转成拼音* <p>* 取首字母或全拼** @param hanzi 汉字字符串* @param isFull 是否全拼 true:表示全拼 false表示:首字母* @return 拼音*/public static String convertHanzi2Pinyin(String hanzi, boolean isFull) {/**** ^[\u2E80-\u9FFF]+$ 匹配所有东亚区的语言* ^[\u4E00-\u9FFF]+$ 匹配简体和繁体* ^[\u4E00-\u9FA5]+$ 匹配简体*/String regExp = "^[\u4E00-\u9FFF]+$";StringBuffer sb = new StringBuffer();if (hanzi == null || "".equals(hanzi.trim())) {return "";}String pinyin = "";for (int i = 0; i < hanzi.length(); i++) {char unit = hanzi.charAt(i);//是汉字,则转拼音if (match(String.valueOf(unit), regExp)) {pinyin = convertSingleHanzi2Pinyin(unit);if (isFull) {sb.append(pinyin);} else {sb.append(pinyin.charAt(0));}} else {sb.append(unit);}}return sb.toString();}/*** 将单个汉字转成拼音** @param hanzi 汉字字符* @return 拼音*/public static String convertSingleHanzi2Pinyin(char hanzi) {HanyuPinyinOutputFormat outputFormat = new HanyuPinyinOutputFormat();outputFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);String[] res;StringBuffer sb = new StringBuffer();try {res = PinyinHelper.toHanyuPinyinStringArray(hanzi, outputFormat);sb.append(res[0]);//对于多音字,只用第一个拼音} catch (Exception e) {e.printStackTrace();return "";}return sb.toString();}/**** 匹配* <P>* 根据字符和正则表达式进行匹配** @param str 源字符串* @param regex 正则表达式** @return true:匹配成功 false:匹配失败*/public static boolean match(String str, String regex) {Pattern pattern = Pattern.compile(regex);Matcher matcher = pattern.matcher(str);return matcher.find();}/*** 测试方法*/public static void main(String[] args) {System.out.println(convertHanzi2Pinyin("张老师", false).toUpperCase());}
}
java如何把汉字转拼音相关推荐
- java实现将汉字转为拼音
原文:java实现将汉字转为拼音 有时候为了方便操作程序的开发,需要将汉字转为拼音等操作.下面这个是自己结合网上的资料,加上自己在公司项目中的亲自实践.完整的实现了将汉字转为拼音的操作.这个Demo只 ...
- java hanyupinyinoutputformat();_Java汉字转拼音pinyin4j用法
Java汉字转拼音pinyin4j用法 在学习编程的过程中,我觉得不止要获得课本的知识, 更多的是通过学习技术知识提高解决问题的能力,这样我们才能走在最前方,更多Java学习,请登陆疯狂java官网. ...
- Java/Android中汉字转拼音的两种方法,优劣比较
一.前言 在我们的开发中,有时会有这样的需求,就是联系人列表按照拼音顺序排列(如通讯录).于是,我也在网上搜到了许多这类的文章,就两种最常见的做法在此进行简单的比较和分析 二.汉字转拼音的方法 使用第 ...
- java实现中文汉字转拼音 Pinyin4j的基本用法
一.前言 工作中有时候会遇到汉字拼音转换的需求,例如:用户首字母搜索某个内容的时候,wzry 可搜索 王者荣耀相关的. 这里推荐使用Pinyin4j,它是sourceforge.net上的一个开源项目 ...
- java下将汉字转换为拼音
1.代码如下,不过有些汉字不支持,如:茜 import java.util.Iterator;import java.util.LinkedHashMap; import java.util.Set; ...
- java如何将汉字转换为拼音_将汉字转换为汉语拼音java实现
有的时候我们需要将中文转换成汉语拼音,将汉字转换成汉语拼音其实挺简单.首先我找到了一个资源,是一个XML文件:TBL_Dict.xml ,这个文件中每个汉字作为一个节点,该节点下有该汉字对应的汉语拼音 ...
- Java技术:汉字转拼音码
public class Test_unicode { /** * @param args */ public static String getPinym(String a) { // ...
- Java实用工具类-将汉字转为拼音
1. 导入对应的jar包 <dependency><groupId>com.belerweb</groupId><artifactId>pinyin4j ...
- Java中获取GBK编码汉字的拼音首字母(包括生僻字)
Java中获取GBK编码汉字的拼音首字母(包括生僻字) 前言 代码 结果 前言 网上关于Java中获取汉字的拼音首字母的方法很多,但大多基于GB2312的汉字所属编码位置判断方法,现有一种基于GBK编 ...
最新文章
- 为什么Redis要比Memcached更火?
- 垃圾回收器算法之引用计数器法
- Arduino可穿戴教程之第一个程序——选择端口(三)
- Serverless 的价值
- 类加载的双亲委派机制
- 故人的一份连连看代码,c语言版本
- linux文件目录含义,Linux中文件权限目录权限的意义及权限对文件目录的意义
- Shell编程之变量
- 天翼杯大数据算法应用大赛感想
- 抛出与抽象相对应的异常(61)
- java面试题2018带答案_java面试题及答案下载
- 第二章 身份验证——《跟我学Shiro》[张开涛]
- pitch yaw roll 角度分别是什么
- 如何进行反欺诈风控模型冷启动
- 考研高数 专题11:多元复合函数及隐函数求导的方法和技巧【灵活】
- C++包扩展_Netgear 网件 EAX80 AX6000规格 无线扩展器 开箱拆解评测
- 防护器件-ESD管知识普及
- 汉罗塔小游戏(自创)
- python初学一(字符串str的处理方式)
- 信息技术未来发展方向
热门文章
- linux下freerdp编译,linux下安装freerdp连接windows远程桌面的好软件软件
- 随机背景在随机位置添加随机颜色的文字
- 超分辨率重建数据集制作:生成低分辨率数据集
- python elasticsearch bulk_Elasticsearch之批量操作bulk
- yyyy-MM-dd‘T‘HH:mm:ss - 里面的‘T‘是什么意思
- 响应式布局之媒体查询
- LCD液晶显示屏通光原理——液晶夹层
- LCD液晶显示屏的特性与控制
- 【期末复习】2021-2022南邮网络管理理论与实践复习题
- VScode远程连接服务器解决办法