突然想到火车票12306网站上在输入地名时,输入拼音也能提示中文名称,可见项目中将中文转换成拼音的情况还是有的,于是网上搜索了下,法相一个“pinyin4j”的java库,支持中文字符和拼音之间的转换。拼音输出格式可以定制。

看了几篇简单介绍和使用的帖子,自己也有了想亲身实现一把的冲动哈,嘿嘿以下就是我的学习和实现过程:

1. pinyin4j库的下载地址:官方下载地址 目前最新的版本是2.5.0

2. 成功下载后解压截图:

doc目录 : pinyin4j的api文档

lib目录 : pinyin4j的jar包

src目录 : pinyin4j的源代码

下面的三个txt文件就是他的更新日志、说明相关的

打开doc目录,双击index.html文件,

根据网上文章实现,我们只要关注HanyuPinyinOutputFormat PinyinHelper等我用红框画出来的几个类即可

3 HanyuPinyinCaseType、HanyupinyinToneType、HanyuPinyinVCharType的介绍

在HanyuPinyinOutputFormat类的api中,最先说明了他的三个关键属性,caseType toneType vCharType

其中:

HanyuPinyinCaseType类中包含两个常量属性:LOWERCASE 和 UPPERCASE ,顾名思义就是大小写,即转换后的汉语拼音是大写还是小写的属性设置;

HanyuPinyinToneType类中包含了三个常量属性:

WITH_TONE_NUMBER (以数字代替声调的显示格式)

WITHOUT_TONE (无声调格式)

WITH_TONE_MARK (有声调格式)

HanyuPinyinVCharType类中包含三个常量属性:(就是遇到v u 和unicode的ü  显示方式)

WITH_V                                v

WITH_U_UNICODE              ü

WITH_U_AND_COLON        u

汉子转换成拼音format格式设置就是这三个属性,当我们设置好我们想要的转换格式后,就可以开始写代码了,当然真正转换的方法是PinyinHelper类,我们可以使用其中的很多方法来完成转换,如截图

我们使用其中的toHanyuPinyinStringArray(char,outformat)方法。

4. 开始编码工作,自己动手实现下,哈哈!!!

标准的固话程序,先创建个工程,然后建个包,在创建个class。。。。。。(哈哈)

根据上文的介绍,首先创建个HanyuPinyinOutputFormat类,然后设置好三个输出格式,具体代码如下:

public class TransChineseWord {/*** 中文转换拼音方法,使用pinyin4j* @param string 带转换的字符串* @return 拼音字符串* @throws BadHanyuPinyinOutputFormatCombination*/public static String transPinyin(String string) throws BadHanyuPinyinOutputFormatCombination{// 创建formatHanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();// 设置format为小写的格式format.setCaseType(HanyuPinyinCaseType.LOWERCASE);// 设置format为带音调的格式format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);// 设置format为ü的显示格式format.setVCharType(HanyuPinyinVCharType.WITH_U_UNICODE);// 将string转换成char数组char[] preTransChars = string.toCharArray();// 定义一个接收转换后的StringBuilder变量StringBuilder outputBuilder = new StringBuilder();// forint length = preTransChars.length;for(int i=0;i<length;i++){// 如果当前字符是中文,将转换成汉语拼音字符数组if(Character.toString(preTransChars[i]).matches("[\u4E00-\u9FA5]+")){String[] pinyins = PinyinHelper.toHanyuPinyinStringArray(preTransChars[i], format);outputBuilder.append(pinyins[0]).append(" ");}else{// 如果不是中文,则不转换直接拼接outputBuilder.append(Character.toString(preTransChars[i]));}}return outputBuilder.toString();}public static void main(String[] args) throws BadHanyuPinyinOutputFormatCombination {String testString = "使用pinyin4j类库将中文转换成汉语拼音的demo实例!";String outputString = transPinyin(testString);System.out.println(outputString);}
}

右击runas运行结果显示为:

shi yong pinyin4jlei ku jiang zhong wen zhuan huan cheng han yu pin yin de demoshi li !

但是,当我把代码中的无音调改为有音调格式后

// 设置format为带音调的格式format.setToneType(HanyuPinyinToneType.WITH_TONE_MARK);

运行结果为:

sh? yòng pinyin4jlèi kù jiāng zhōng wén zhu?n huàn chéng hàn y? pīn yīn de demoshí lì !

可能是我本地字体库里面缺少对应的音标字符字体吧,不管怎么说,将中文转换成汉语拼音就是这么简单,只用了解了相关的api,实现还是很简单的哈。

好了,学习笔记就这些,记录下来留着方便以后用得到的时候拿出来。




java中文转换为拼音的pinyin4j学习笔记相关推荐

  1. java 中文转拼音之pinyin4j

    一.简单介绍 有时候,需要将汉字编程对应的拼音,以方便数据的处理.比如在Android手机应用的开发上,要查询联系人的姓名,通常都是用拼音进行查询的. 比如要查询"曹孟德",就可以 ...

  2. 中文转换为拼音工具类(很全)

    中文转换为拼音工具类(很全) 1.所需的jar包 2.工具类(可以直接拿去用) 1.所需的jar包 <!--获取汉字的拼音--><dependency><groupId& ...

  3. JAVA汉字转拼音工具(pinyin4j)

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

  4. Java 中文转拼音工具类 (附带长度转换 2:1)

    Java 中文转拼音工具类 (附带长度转换 2:1) import com.google.common.collect.Lists; import com.google.common.collect. ...

  5. Java 中文转拼音/汉字转拼音, 中文转五笔/汉字转五笔, 下载字典!

    Java 中文转拼音/汉字转拼音, 中文转五笔/汉字转五笔, 下载字典! 源码 CharacterElement.java 源码 Dict.java 输出拼音 输出五笔 输出全部 字典下载地址 源码 ...

  6. Effective Java(第三版) 学习笔记 - 第四章 类和接口 Rule20~Rule25

    Effective Java(第三版) 学习笔记 - 第四章 类和接口 Rule20~Rule25 目录 Rule20 接口优于抽象类 Rule21 为后代设计接口 Rule22 接口只用于定义类型 ...

  7. 通过第三方jar实现中文转换为拼音

    如何把中文转换为拼音 通过使用第三方的jar包pinyin4j-2.5..jar,把中文转换为拼音,代码如下. public class PinYinUtil {/*** 获取汉字的拼音,会销毁一定的 ...

  8. 13、《Libevent中文帮助文档》学习笔记13:Linux下集成、运行libevent

    Linux下编译libevent的指导可以参考<4.<Libevent中文帮助文档>学习笔记4:Linux下编译libevent>,完成编译.安装,生成so库后,其他程序即可依 ...

  9. Java转义工具类StringEscapeUtils的学习笔记

    Java转义工具类StringEscapeUtils的学习笔记 前言 ​ 在java.commons.lang3 的包中有许多方便好用的工具类,类似于处理字符串的StringUtils,处理日期的Da ...

  10. 使用pinyin4j解决中文转换为拼音的问题

    博客第一篇日志啊,呵呵,那就记录一下我昨天在工作中遇到的汉字转换拼音的问题吧~~ 在工程中引入pinyin4j-2.5.0.jar,该jar包可以实现汉字转换为拼音,汉字转换为拼音首字母,以及得到字符 ...

最新文章

  1. Hadoop1 Centos伪分布式部署
  2. ReentrantLock和synchronized两种锁定机制
  3. 【Unity笔记】使用协程(Coroutine)异步加载场景
  4. ie9浏览器两个ajax请求同步不兼容_浏览器拦截问题
  5. MyBatis 实际使用案例-mappers
  6. JAVA生成随机字符串方法
  7. 【Python位运算】——左移操作(<<)右移操作>>
  8. 第一阶段:前端开发_Mysql——表与表之间的关系
  9. 二叉树的各种操作(转)
  10. java wsdl 服务端代码_wsdl2java 生成 webservice服务端代码:
  11. 安卓调试工具 adb 命令大全
  12. Hive 算两时间差
  13. UWB测距及定位原理
  14. 微软面向大众市场发布Office 2010
  15. 再见2018,感谢你的一路陪伴
  16. 大数据破获网售假耐克案
  17. 自己做一个属于自己的论坛html网站
  18. 山东大学计算机学院复试名单,山东大学2012计算机学院拟录取名单。
  19. 用 bat 批处理命令启动 Android Studio 自带模拟器
  20. Buxwiz注册详解

热门文章

  1. 百度关键词排名查询源码_推荐4个Google关键词排名查询工具
  2. Global Shutter(全局快门)与Rolling Shutter(卷帘快门)的区别与比较
  3. 51/stm32单片机软件调试方法与技巧
  4. STL与Boost对比
  5. linux终端下打开pdf文件,如何从终端打开PDF文件?
  6. python笔记:7.2.2.2 一元多因素方差分析_交互效应(购房面积影响因素交互效应)
  7. SWARM-BZZ的联合曲线(Bonding Curve)
  8. Slat撒盐加密原理
  9. 看完就能学会如何使用热敏电阻!
  10. html自动拿微信扫描,HTML——微信浏览器H5页面调用微信扫一扫