在项目中很多小伙伴会用到汉字转拼音功能需求,在这里给大家分享一个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如何把汉字转拼音相关推荐

  1. java实现将汉字转为拼音

    原文:java实现将汉字转为拼音 有时候为了方便操作程序的开发,需要将汉字转为拼音等操作.下面这个是自己结合网上的资料,加上自己在公司项目中的亲自实践.完整的实现了将汉字转为拼音的操作.这个Demo只 ...

  2. java hanyupinyinoutputformat();_Java汉字转拼音pinyin4j用法

    Java汉字转拼音pinyin4j用法 在学习编程的过程中,我觉得不止要获得课本的知识, 更多的是通过学习技术知识提高解决问题的能力,这样我们才能走在最前方,更多Java学习,请登陆疯狂java官网. ...

  3. Java/Android中汉字转拼音的两种方法,优劣比较

    一.前言 在我们的开发中,有时会有这样的需求,就是联系人列表按照拼音顺序排列(如通讯录).于是,我也在网上搜到了许多这类的文章,就两种最常见的做法在此进行简单的比较和分析 二.汉字转拼音的方法 使用第 ...

  4. java实现中文汉字转拼音 Pinyin4j的基本用法

    一.前言 工作中有时候会遇到汉字拼音转换的需求,例如:用户首字母搜索某个内容的时候,wzry 可搜索 王者荣耀相关的. 这里推荐使用Pinyin4j,它是sourceforge.net上的一个开源项目 ...

  5. java下将汉字转换为拼音

    1.代码如下,不过有些汉字不支持,如:茜 import java.util.Iterator;import java.util.LinkedHashMap; import java.util.Set; ...

  6. java如何将汉字转换为拼音_将汉字转换为汉语拼音java实现

    有的时候我们需要将中文转换成汉语拼音,将汉字转换成汉语拼音其实挺简单.首先我找到了一个资源,是一个XML文件:TBL_Dict.xml ,这个文件中每个汉字作为一个节点,该节点下有该汉字对应的汉语拼音 ...

  7. Java技术:汉字转拼音码

    public class Test_unicode { /**   * @param args   */ public static String getPinym(String a) {   // ...

  8. Java实用工具类-将汉字转为拼音

    1. 导入对应的jar包 <dependency><groupId>com.belerweb</groupId><artifactId>pinyin4j ...

  9. Java中获取GBK编码汉字的拼音首字母(包括生僻字)

    Java中获取GBK编码汉字的拼音首字母(包括生僻字) 前言 代码 结果 前言 网上关于Java中获取汉字的拼音首字母的方法很多,但大多基于GB2312的汉字所属编码位置判断方法,现有一种基于GBK编 ...

最新文章

  1. 为什么Redis要比Memcached更火?
  2. 垃圾回收器算法之引用计数器法
  3. Arduino可穿戴教程之第一个程序——选择端口(三)
  4. Serverless 的价值
  5. 类加载的双亲委派机制
  6. 故人的一份连连看代码,c语言版本
  7. linux文件目录含义,Linux中文件权限目录权限的意义及权限对文件目录的意义
  8. Shell编程之变量
  9. 天翼杯大数据算法应用大赛感想
  10. 抛出与抽象相对应的异常(61)
  11. java面试题2018带答案_java面试题及答案下载
  12. 第二章 身份验证——《跟我学Shiro》[张开涛]
  13. pitch yaw roll 角度分别是什么
  14. 如何进行反欺诈风控模型冷启动
  15. 考研高数 专题11:多元复合函数及隐函数求导的方法和技巧【灵活】
  16. C++包扩展_Netgear 网件 EAX80 AX6000规格 无线扩展器 开箱拆解评测
  17. 防护器件-ESD管知识普及
  18. 汉罗塔小游戏(自创)
  19. python初学一(字符串str的处理方式)
  20. 信息技术未来发展方向

热门文章

  1. linux下freerdp编译,linux下安装freerdp连接windows远程桌面的好软件软件
  2. 随机背景在随机位置添加随机颜色的文字
  3. 超分辨率重建数据集制作:生成低分辨率数据集
  4. python elasticsearch bulk_Elasticsearch之批量操作bulk
  5. yyyy-MM-dd‘T‘HH:mm:ss - 里面的‘T‘是什么意思
  6. 响应式布局之媒体查询
  7. LCD液晶显示屏通光原理——液晶夹层
  8. LCD液晶显示屏的特性与控制
  9. 【期末复习】2021-2022南邮网络管理理论与实践复习题
  10. VScode远程连接服务器解决办法