工具:pinyin4j

pinyin4j是一个支持将简体和繁体中文转换到成拼音的Java开源类库

pinyin4j的官方下载地址:http://sourceforge.net/projects/pinyin4j/files/,目前最新的版本是2.5.0

下载解压后的目录结构及说明如下

  • doc : pinyin4j的api文档
  • lib : pinyin4j的jar包
  • src : pinyin4j的源代码
  • CHANGELOG.txt : pinyin4j的版本更新日志
  • COPYING.txt : LICENSE说明
  • README.txt : pinyin4j的概要介绍

几个主要工具类的介绍:

HanyuPinyinCaseType:定义汉语拼音的大小写类型;两个类属性UPPERCASE和LOWERCASE;

HanyuPinyinToneType:定义汉语拼音声调类型

WITH_TONE_NUMBER(以数字代替声调) :  zhong1  zhong4

WITHOUT_TONE (无声调) :             zhong   zhong

WITH_TONE_MARK (有声调) :           zhōng  zhòng

HanyuPinyinVCharType:定义汉语拼音字符u的类型(碰到unicode 的ü 、v 和 u时的显示方式) 如汉字“吕”

WITH_U_AND_COLON : lu:3

WITH_V :            lv3

WITH_U_UNICODE :    lü3

HanYuPinYinOutputFormat:定义汉语拼音的输出类型,值都是取得上述三个类的类属性 eg:

HanYuPinYinOutputFormat format = new HanYuPinYinOutputFromat();

format.setCaseType(……);

format.setToneType(……);

format.setVCharType(……);

应用:

通常情况下,只需要用到其中的PinyinHelper类中的静态方法toHanyuPinyinStringArray就可以了,比如:

String[] pinyinArray =PinyinHelper.toHanyuPinyinStringArray('单');

for(int i = 0; i < pinyinArray.length; ++i){

System.out.print(pinyinArray[i]);

}

就会输出:

dan1 chan2 shan4

下面请看一个完整的例子:

首先在项目中需要将pinyin4jjar包导入到项目中,这样里面的工具类才能被正常的应用。

/*** 获取汉字串拼音首字母,英文字符不变* * @param chinese*            汉字串* @return 汉语拼音首字母*/public static String cn2FirstSpell(String str) {String convert = "";for (int j = 0; j < str.length(); j++) {char word = str.charAt(j);String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(word);//这个得到的是一个汉字的多个读音的数组且带数字声调的,如张zhang1if (pinyinArray != null) {convert += pinyinArray[0].charAt(0);} else {convert += word;}}return convert;}

PinyinHelper默认转化的结果是拼音的全拼且是带数字声调的格式

再来看下面的例子,输出汉字对应拼音的全拼

/*** 获取汉字串拼音,英文字符不变* * @param chinese*            汉字串* @return 汉语拼音*/public static String cn2Spell(String src) {char[] t1 = null;t1 = src.toCharArray();String[] t2 = new String[t1.length];HanyuPinyinOutputFormat t3 = new HanyuPinyinOutputFormat();t3.setCaseType(HanyuPinyinCaseType.LOWERCASE);t3.setToneType(HanyuPinyinToneType.WITHOUT_TONE);t3.setVCharType(HanyuPinyinVCharType.WITH_V);String t4 = "";int t0 = t1.length;try {for (int i = 0; i < t0; i++) {// 判断是否为汉字字符if (java.lang.Character.toString(t1[i]).matches("[\\u4E00-\\u9FA5]+")) {t2 = PinyinHelper.toHanyuPinyinStringArray(t1[i], t3);t4 += t2[0];} elset4 += java.lang.Character.toString(t1[i]);}return t4;} catch (Exception e1) {e1.printStackTrace();t4="";}return t4;}

汉字转化成拼音工具类介绍相关推荐

  1. java 汉字转拼音原理_Java汉字转成汉语拼音工具类

    Java汉字转成汉语拼音工具类,需要用到pinyin4j.jar包. import net.sourceforge.pinyin4j.PinyinHelper; import net.sourcefo ...

  2. 使用多线程查询百万条用户数据将汉字转化成拼音

    现在有一个需求:用户表里面有将近200万条数据,查询时需要按用户名字的汉语拼音按从a-z排序.有两种解决方案:1.查询时使用数据库自带的CONVERT()函数进行转化,按拼音首字母排序;2.新加一个拼 ...

  3. java传递汉字翻译为英文_java写的能将汉字翻译成拼音的类

    /** *//** ############################################################################# # DESCRIBE 将 ...

  4. Python 汉字转化成拼音

    Python 把汉字转化成拼音 每个汉字对于一个编码,通过查找编码可以把汉字转换成拼音,汉字编码文件可以在网上下载(unicode_pinyin.txt). def chinese_to_pinyin ...

  5. 汉字转化成拼音 汉字转化成拼音

    /// <summary>     /// Son1c 的摘要说明.     /// </summary>     /// 汉字转化成拼音   汉字转化成拼音     publ ...

  6. php将文字转为拼音,php 将汉字转化成拼音

    php 将汉字转化成拼音 php 将汉字转化成拼音 class PinyinAction { public function Pinyin($_String, $_Code='gb2312'){ $_ ...

  7. iOS --- 把汉字转化成拼音 Swift

    extension String {/**把汉字转化成拼音*/func transformToPinYin() -> String {let mutableString = NSMutableS ...

  8. 汉字转化成拼音的源代码

    1using System;   2using System.Collections;   3using System.Text;   4namespace JJBase.String   5{   ...

  9. 汉字转化成拼音,其实是有技巧的我教你

    输入汉字后,只需轻松点击一下,就可以得到对应的拼音结果.此外,该工具还支持将汉字转换为带音标的拼音和不带音标的拼音字符,以满足不同用户的需求.无论是在学习汉语拼音还是在写作中需要用到汉字转拼音,使用汉 ...

最新文章

  1. 利用ArcGIS Python批量拼接裁剪遥感影像(arcpy batch processing)
  2. javafx查找子节点_JavaFX技巧29:使布局忽略不可见的节点
  3. 前端学习(2998):vue+element今日头条管理--element引入
  4. 机器学习算法总结之支持向量机(一)
  5. Golang 接口相等比较注意要点
  6. scala 入门初探
  7. linux软盘镜像下载,Linux系统各发行版镜像下载(持续更新)
  8. php 实现url rewrite 伪静态
  9. RMQ 区间最值问题
  10. Day04_Manuals for Python@lisongye - list列表
  11. 蓝桥杯——算法训练——P0704
  12. 为什么局域网IP通常以192.168开头而不是1.2或者193.169?
  13. 终端滑模(Terminal滑模)理解
  14. hdu Find Integer (6441)(大费马定理)
  15. 值得一看的电脑教程下载
  16. 代码随想录训练营day27
  17. 0~6岁儿童不同时期微量元素含量的结果分析
  18. 仿宋GB213字体加粗后笔画发虚
  19. python实现角谷定理
  20. 修改GL-iNet路由器的reset键功能

热门文章

  1. 【一天时间|vue基础】vue组件间通信
  2. 马斯克称自己不喜欢做CEO,更想做技术和设计;吴恩达的《机器学习》课程即将关闭注册|极客头条...
  3. 单线程、SSE、AVX运行效率对比——乘法累加运算
  4. 写一些关于如何运用计算机英语,计算机专业英语的重要性
  5. MySQL初步学习及实例1
  6. RuoYi-Vue微信小程序登录授权
  7. img图片下面出现莫名的下边距
  8. Day118.尚医通:订单列表、详情、微信支付、查询交易状态
  9. 让世界惊艳的中国造!宏宇用科技创新打造“新型石材”
  10. 用wegame卡在正在连接服务器,饥荒wegame正在启动服务器 | 手游网游页游攻略大全...