Pinyin4j是sourceforge.net上的一个开源项目,是专门用来处理汉字和拼音转化的java工具。功能比较强大。
应用场景:
①需要将很多个汉字按照第一个字的首字母排序时,例如: 微信中按照好友名字第一个字母排序。
②需要提取用户姓名的缩写时,如王麻子:wmz
③需要将一串汉字转化为拼音时:如:hello!你好!:hello!nihao! 或者 hello!nǐ hǎo
④……
使用步骤很简单:
1,导入依赖包
2,直接书写main方法开始使用,就这么简单!

PinyinHelper的静态方法toHanyuPinyinStringArray(‘字符’)就可以将字符直接转化为拼音。
由于一个汉字可能是多音字,所以转化的结果是一个数组。如“重”可以是四声的重(重量),也可以是二声的重(重庆)。
3,前面是最基本也是最核心的方式,接下来说一下更改拼音格式
PinyinHelper的静态方法toHanyuPinyinStringArray(‘字符’),没有增加格式约束,那么得到的始终是小写且音调用数字1-4表示。
如何添加格式约束呢?
toHanyuPinyinStringArray方法是有重载的方法的。
①我们只需要创建一个自定义的HanyuPinyinOutputFormat对象就完成了!
HanyuPinyinOutputFormat outFormat = new HanyuPinyinOutputFormat();
②然后调用相应的set方法
设置拼音是大写or小写:调用setCaseType方法。
setCaseType(HanyuPinyinCaseType.LOWERCASE) // 默认是小写
setCaseType(HanyuPinyinCaseType.UPPERCASE) //大写样式
设置拼音声调显示方式:调用setToneType方法。
setToneType(HanyuPinyinToneType.WITHOUT_TONE) // 无声调
setToneType(HanyuPinyinToneType.WITH_TONE_MARK) //字母上自己显示如ǎ
setToneType(HanyuPinyinToneType.WITH_TONE_NUMBER) //以数字方式表示,默认
设置拼音ü的显示方式:调用setVCharType方法。
setVCharType(HanyuPinyinVCharType.WITH_U_AND_COLON) // ü 用u:表示。默认
setVCharType(HanyuPinyinVCharType.WITH_V) //ü 用v表示
setVCharType(HanyuPinyinVCharType.WITH_U_UNICODE) //ü 用ü表示
*需要注意u的声调和:要保持一致性(可以理解为方向要么都在上、要么都在右),ü3是错误的,ǚ或u:3就对了。不然运行会报错。
4.1,测试一:根据用户名,提取每个汉字的首字母,如罗宇天:LYT
*
①先封装一个方法获取单个字符的首字母

②再封装一个方法遍历用户名中的每个字符。就可以得到结果了



4.2,测试二:将汉字转化为带声调的拼音如:hello!你好------->hello!nǐ hǎo
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210321231323472.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L0oxNzlfRHJhZ29u,size_16,color_FFFFFF,t_70
2封装转化方法

String str = “Hello!你好!北京欢迎您!”;
System.out.println(transferToPinyin(str, outputFormat));

4.3 测试三:模仿微信通讯录,将好友排序。
由于我采用的是treeMap集合,需要自定义比较器。所以先封装比较方法

②编写实现方法

/**

  • 判断两个字符串的大小关系
  • @param o1 用户名转化后的拼音
  • @param o2 用户名转化后的拼音
  • @return
    */
    public static Integer compareValue(String o1, String o2){
    Integer times = o1.length()>o2.length()?o2.length():o1.length();
    Integer i=0;
    Integer returnResult=0;
    do {
    returnResult = o1.charAt(i) - o2.charAt(i);
    i++;
    }while (returnResult == 0 && i<times);
    //如果returnResult=0,说明o1和o2是全包含关系或完全相同,如胡(hu)和黄(huang)
    if(returnResult == 0){
    //由于tree系列的集合键不能重复,所以这里应该继续判断用户的其他属性。如id等,为了方便我就直接返回-1了。
    returnResult = -1;
    }
    return returnResult;
    }
    ③把转换拼音的方法的空格注释掉

    ④测试:


java汉字转拼音,pinyin4j简单介绍相关推荐

  1. Java汉字转拼音pinyin4j用法

    一.工具介绍 pinyin4j 是一个支持将简体和繁体中文转换到成拼音的Java开源类库: 1. 功能 支持同一汉字有多个发音 还支持拼音的格式化输出,比如第几声之类的, 同时支持简体中文.繁体中文转 ...

  2. java pinyin4j_Java汉字转拼音pinyin4j用法详解

    一.工具介绍 pinyin4j 是一个支持将简体和繁体中文转换到成拼音的Java开源类库: 1. 功能 支持同一汉字有多个发音 还支持拼音的格式化输出,比如第几声之类的, 同时支持简体中文.繁体中文转 ...

  3. Java中汉字转拼音pinyin4j的用法

    pinyin4j 是一个支持将简体和繁体中文转换到成拼音的Java开源类库: 依赖jar包导入 <!-- pinyin4j 汉语转拼音 --><dependency><g ...

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

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

  5. JAVA实现汉字转换为拼音 pinyin4j/JPinyin

    转载自  JAVA实现汉字转换为拼音 pinyin4j/JPinyin 在项目中经常会遇到需求用户输入汉字后转换为拼音的场景,比如说通讯录,就会要求按名字首字符发音排序,如果自己写实现这方面的功能是个 ...

  6. java 判断汉字音调_Java中汉字转拼音pinyin4j用法实例分析

    本文实例讲述了Java中汉字转拼音pinyin4j用法.分享给大家供大家参考,具体如下: 汉字转换拼音在日常开发中是个很常见的问题.例如我们伟大的12306,在地名中输入"WH", ...

  7. java汉字转拼音(全拼、简拼)

    java汉字转拼音(全拼.简拼) <dependency><groupId>com.belerweb</groupId><artifactId>piny ...

  8. 记录一下:Java 汉字获取拼音或首字母工具类

    记录一下:Java 汉字获取拼音或首字母工具类 Maven依赖配置 Java代码 本文主要记录一下在Java中,如何将字符串中的中文转化为拼音,获取汉字串拼音首字母,获取汉字串拼音的工具类,以及相关的 ...

  9. java 汉字转换拼音

    java 汉字转换拼音 maven依赖 <dependency><groupId>com.belerweb</groupId><artifactId>p ...

  10. android 汉字转拼音pinyin4j包

    android 汉字转拼音pinyin4j包 转载于:https://www.cnblogs.com/longhs/p/3148276.html

最新文章

  1. IDEA实用插件和技巧
  2. MYSQL专题-绝对实用的MYSQL优化总结
  3. OC Swift 走马灯效果
  4. TI-RTOS实时操作系统开发之功耗测试
  5. 【Python】python学习笔记day1
  6. 嵌入式操作系统内核原理和开发(最快、最优、最差内存分配算法)
  7. vim与外部文件的粘帖复制
  8. 腾讯会议开放API接口,为企业打造专属的“腾讯会议”
  9. 51单片机ALE引脚的控制(摘录)
  10. VSCode配置JavaScript环境
  11. python--基于百度aip的语音交互及语音唤醒
  12. 数仓及其维度(分层)建模(ODS DWD DWS DWT ADS)
  13. 英语口语七十五之[火锅大杂烩]
  14. 【漏洞通告】CVE-2022-36803 Atlassian Jira Align权限提升漏洞
  15. Python中len()和range()函数
  16. 2022年淘宝618活动时间和天猫618有什么优惠活动
  17. 在java中使用FFmpeg将图片和音频合成视频
  18. 攻防世界之Web新手练习篇
  19. 关于向量的点积和叉乘
  20. 数据库的基础使用方法

热门文章

  1. 用什么c语言语句直接跳出if,C语言中怎样跳出if语句
  2. 微信开发服务器端口号,微信公众号开发步骤
  3. Android音量系统分析
  4. 计算机设置了用户密码登录如何撤销6,台式电脑怎么设置和取消开机密码
  5. java poi 数据透视_java 通过 poi pivotTable 实现 数据透视表
  6. APP如何上架App Store?
  7. 齐鲁工业大学计算机学院复试名单,齐鲁工业大学2019年硕士研究生拟录取名单公示...
  8. 中国超市智能储物柜市场需求动态与盈利前景预测报告2022-2027年
  9. docker push received unexpected HTTP status: 503 Service Unavailable
  10. 芝麻信用分怎么提高到750+芝麻信用分暴涨攻略