汉字转化成拼音工具类介绍
工具: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;}
汉字转化成拼音工具类介绍相关推荐
- java 汉字转拼音原理_Java汉字转成汉语拼音工具类
Java汉字转成汉语拼音工具类,需要用到pinyin4j.jar包. import net.sourceforge.pinyin4j.PinyinHelper; import net.sourcefo ...
- 使用多线程查询百万条用户数据将汉字转化成拼音
现在有一个需求:用户表里面有将近200万条数据,查询时需要按用户名字的汉语拼音按从a-z排序.有两种解决方案:1.查询时使用数据库自带的CONVERT()函数进行转化,按拼音首字母排序;2.新加一个拼 ...
- java传递汉字翻译为英文_java写的能将汉字翻译成拼音的类
/** *//** ############################################################################# # DESCRIBE 将 ...
- Python 汉字转化成拼音
Python 把汉字转化成拼音 每个汉字对于一个编码,通过查找编码可以把汉字转换成拼音,汉字编码文件可以在网上下载(unicode_pinyin.txt). def chinese_to_pinyin ...
- 汉字转化成拼音 汉字转化成拼音
/// <summary> /// Son1c 的摘要说明. /// </summary> /// 汉字转化成拼音 汉字转化成拼音 publ ...
- php将文字转为拼音,php 将汉字转化成拼音
php 将汉字转化成拼音 php 将汉字转化成拼音 class PinyinAction { public function Pinyin($_String, $_Code='gb2312'){ $_ ...
- iOS --- 把汉字转化成拼音 Swift
extension String {/**把汉字转化成拼音*/func transformToPinYin() -> String {let mutableString = NSMutableS ...
- 汉字转化成拼音的源代码
1using System; 2using System.Collections; 3using System.Text; 4namespace JJBase.String 5{ ...
- 汉字转化成拼音,其实是有技巧的我教你
输入汉字后,只需轻松点击一下,就可以得到对应的拼音结果.此外,该工具还支持将汉字转换为带音标的拼音和不带音标的拼音字符,以满足不同用户的需求.无论是在学习汉语拼音还是在写作中需要用到汉字转拼音,使用汉 ...
最新文章
- Global.asax使用1
- endnote教程:参考文献出现{zhang,2020,#365} 修改方法
- (转)字典树原理+实现
- php 加七天减七天,php实战第七天_PHP教程
- Java基本数据类型及所占字节大小
- python闰年多一天_记一个 python datetime 闰年问题
- 【AI视野·今日Robot 机器人论文速览 第十六期】Tue, 29 Jun 2021
- Servlet 实现訪问量的统计小案例
- Android实例-手机安全卫士(三十五)-来电号码显示归属地
- php主动推送弹幕_源起网-织梦发布文档主动百度推送熊掌推送批量推送
- 力扣--19删除链表中的倒数第n个节点
- Spring Cloud Eureka 源码分析(一) 服务端启动过程
- Win7梦幻桌面字体有问题怎么办
- 花了三天三夜才收集整理出来的经典 SQL 数据库笔试题及答案
- 计算激光雷达各点的仰角并分析其线数——根据lidar文档垂直角公式计算自己的激光雷达参数/以aloam为例子
- mem考试能用计算机吗,Memtest可以通过多少次?
- 高等数学第六版上册答案
- Unity运行时输出场景物体及角色为fbx文件
- kindle 耗电飞速,电池坏了?你可能给kindle“吃了有毒的食物”
- 135、137、138、139和445端口解释及关闭方法
热门文章
- 【一天时间|vue基础】vue组件间通信
- 鲁大师智能化评测新项目——鲁大师真续航测试1.0正式发布
- 黄仁勋误入直播被当“路人”,英伟达粉丝都乐疯了
- 专为AI大模型打造的GPU加速器MI300X
- 鸿蒙系统智能电视用时间长了会不会卡,智能电视越用越卡怎么办?四招教你解决电视卡顿...
- python数据格式化之pprint
- 火爆B站的阿玮老师,他带着课程走来了(含4天入门到精通Java直播课)
- css制作类抖音logo
- 微信小程序nodejs+python+php+springboot+vue 微型整容医美挂号预约app系统
- python局域网联机_Python Socket-获取局域网连接的服务器主机名 - python