工具: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. Global.asax使用1
  2. endnote教程:参考文献出现{zhang,2020,#365} 修改方法
  3. (转)字典树原理+实现
  4. php 加七天减七天,php实战第七天_PHP教程
  5. Java基本数据类型及所占字节大小
  6. python闰年多一天_记一个 python datetime 闰年问题
  7. 【AI视野·今日Robot 机器人论文速览 第十六期】Tue, 29 Jun 2021
  8. Servlet 实现訪问量的统计小案例
  9. Android实例-手机安全卫士(三十五)-来电号码显示归属地
  10. php主动推送弹幕_源起网-织梦发布文档主动百度推送熊掌推送批量推送
  11. 力扣--19删除链表中的倒数第n个节点
  12. Spring Cloud Eureka 源码分析(一) 服务端启动过程
  13. Win7梦幻桌面字体有问题怎么办
  14. 花了三天三夜才收集整理出来的经典 SQL 数据库笔试题及答案
  15. 计算激光雷达各点的仰角并分析其线数——根据lidar文档垂直角公式计算自己的激光雷达参数/以aloam为例子
  16. mem考试能用计算机吗,Memtest可以通过多少次?
  17. 高等数学第六版上册答案
  18. Unity运行时输出场景物体及角色为fbx文件
  19. kindle 耗电飞速,电池坏了?你可能给kindle“吃了有毒的食物”
  20. 135、137、138、139和445端口解释及关闭方法

热门文章

  1. 【一天时间|vue基础】vue组件间通信
  2. 鲁大师智能化评测新项目——鲁大师真续航测试1.0正式发布
  3. 黄仁勋误入直播被当“路人”,英伟达粉丝都乐疯了
  4. 专为AI大模型打造的GPU加速器MI300X
  5. 鸿蒙系统智能电视用时间长了会不会卡,智能电视越用越卡怎么办?四招教你解决电视卡顿...
  6. python数据格式化之pprint
  7. 火爆B站的阿玮老师,他带着课程走来了(含4天入门到精通Java直播课)
  8. css制作类抖音logo
  9. 微信小程序nodejs+python+php+springboot+vue 微型整容医美挂号预约app系统
  10. python局域网联机_Python Socket-获取局域网连接的服务器主机名 - python