java中文转换为拼音的pinyin4j学习笔记
突然想到火车票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学习笔记相关推荐
- java 中文转拼音之pinyin4j
一.简单介绍 有时候,需要将汉字编程对应的拼音,以方便数据的处理.比如在Android手机应用的开发上,要查询联系人的姓名,通常都是用拼音进行查询的. 比如要查询"曹孟德",就可以 ...
- 中文转换为拼音工具类(很全)
中文转换为拼音工具类(很全) 1.所需的jar包 2.工具类(可以直接拿去用) 1.所需的jar包 <!--获取汉字的拼音--><dependency><groupId& ...
- JAVA汉字转拼音工具(pinyin4j)
pinyin4j 介绍 pinyin4j 是一个支持将简体和繁体中文转换到成拼音的Java开源类库 支持同一汉字有多个发音 还支持拼音的格式化输出,比如第几声之类的, 同时支持简体中文.繁体中文转换为 ...
- Java 中文转拼音工具类 (附带长度转换 2:1)
Java 中文转拼音工具类 (附带长度转换 2:1) import com.google.common.collect.Lists; import com.google.common.collect. ...
- Java 中文转拼音/汉字转拼音, 中文转五笔/汉字转五笔, 下载字典!
Java 中文转拼音/汉字转拼音, 中文转五笔/汉字转五笔, 下载字典! 源码 CharacterElement.java 源码 Dict.java 输出拼音 输出五笔 输出全部 字典下载地址 源码 ...
- Effective Java(第三版) 学习笔记 - 第四章 类和接口 Rule20~Rule25
Effective Java(第三版) 学习笔记 - 第四章 类和接口 Rule20~Rule25 目录 Rule20 接口优于抽象类 Rule21 为后代设计接口 Rule22 接口只用于定义类型 ...
- 通过第三方jar实现中文转换为拼音
如何把中文转换为拼音 通过使用第三方的jar包pinyin4j-2.5..jar,把中文转换为拼音,代码如下. public class PinYinUtil {/*** 获取汉字的拼音,会销毁一定的 ...
- 13、《Libevent中文帮助文档》学习笔记13:Linux下集成、运行libevent
Linux下编译libevent的指导可以参考<4.<Libevent中文帮助文档>学习笔记4:Linux下编译libevent>,完成编译.安装,生成so库后,其他程序即可依 ...
- Java转义工具类StringEscapeUtils的学习笔记
Java转义工具类StringEscapeUtils的学习笔记 前言 在java.commons.lang3 的包中有许多方便好用的工具类,类似于处理字符串的StringUtils,处理日期的Da ...
- 使用pinyin4j解决中文转换为拼音的问题
博客第一篇日志啊,呵呵,那就记录一下我昨天在工作中遇到的汉字转换拼音的问题吧~~ 在工程中引入pinyin4j-2.5.0.jar,该jar包可以实现汉字转换为拼音,汉字转换为拼音首字母,以及得到字符 ...
最新文章
- Hadoop1 Centos伪分布式部署
- ReentrantLock和synchronized两种锁定机制
- 【Unity笔记】使用协程(Coroutine)异步加载场景
- ie9浏览器两个ajax请求同步不兼容_浏览器拦截问题
- MyBatis 实际使用案例-mappers
- JAVA生成随机字符串方法
- 【Python位运算】——左移操作(<<)右移操作>>
- 第一阶段:前端开发_Mysql——表与表之间的关系
- 二叉树的各种操作(转)
- java wsdl 服务端代码_wsdl2java 生成 webservice服务端代码:
- 安卓调试工具 adb 命令大全
- Hive 算两时间差
- UWB测距及定位原理
- 微软面向大众市场发布Office 2010
- 再见2018,感谢你的一路陪伴
- 大数据破获网售假耐克案
- 自己做一个属于自己的论坛html网站
- 山东大学计算机学院复试名单,山东大学2012计算机学院拟录取名单。
- 用 bat 批处理命令启动 Android Studio 自带模拟器
- Buxwiz注册详解
热门文章
- 百度关键词排名查询源码_推荐4个Google关键词排名查询工具
- Global Shutter(全局快门)与Rolling Shutter(卷帘快门)的区别与比较
- 51/stm32单片机软件调试方法与技巧
- STL与Boost对比
- linux终端下打开pdf文件,如何从终端打开PDF文件?
- python笔记:7.2.2.2 一元多因素方差分析_交互效应(购房面积影响因素交互效应)
- SWARM-BZZ的联合曲线(Bonding Curve)
- Slat撒盐加密原理
- 看完就能学会如何使用热敏电阻!
- html自动拿微信扫描,HTML——微信浏览器H5页面调用微信扫一扫