,,Java汉字转拼音pinyin4j用法详解

,,Java汉字转拼音pinyin4j用法详解

本文主要介绍Java汉字转换成拼音的pinyin4j用法详解,有需要的朋友可以参考一下。

一、工具介绍

Pin4J是Java开源类库,支持将简体中文和繁体中文转换为拼音;

1. 功能

支持同一个汉字的多种读音。

打印格式,其中也支持拼音,如什么声调、

同时支持简体中文和繁体中文转换成拼音…而且用起来也很简单。这里是它的官方网站,提供下载:

pinyin4j官方下载地址

2. 目录结构及说明

doc的api文档:pinyin4j

lib的Jar包:pinyin4j

src:pinyin 4j的源代码

changelog . txt:pinyin 4j的版本更新日志

COPYING.txt:许可证描述

readme . txt:pinyin 4j概述

3. 原理

Pin4J使用一个. txt文本文件(uicode_to_hanyu_pinyin.txt)来存储unicode编码和拼音的对应关系,通过读取配置文件来达到转换的目的。

该属性文件中存储的信息基本格式如下:89E3 (jie3,jie4,xie4) //(对应汉字“解”)89E3是汉字对应的unicode码的十六进制数,(jie3,jie4,xie4)是该汉字对应的三个读音(中文有多音字)。

说明pinyin4j支持多音字的处理。品银4j的加工过程如下:

根据String的toCharArray方法,获取每个字符(获取单词“solution”的unicode代码,实际上是35299。由于java中的char和String都是unicode编码,所以可以直接转换成int类型的编码数据35299)。然后用整数。托赫斯特林(C1)。toupper case()将其转换为十六进制数[即89E3],通过读取配置文件得到“杰”字的拼音(jie3,jie4,xie4)。那么这里有三个拼音,pinyin4j的默认值是第一个,也就是jie3[意思是读jie。

二、pinyin4J 使用

pinyin4j提供的工具类是PinyinHelper,提供静态方法。

-toHanyuPinyinString()(已过时)

- toHanyuPinyinStringArray()

pin4j中有四个辅助类:

-hanyupinyinchetype

- HanyuPinyinToneType

- HanyuPinyinVCharType

-hanyupininoutputformat

具体功能和用法见代码:

hanyupininoutputformat default format=new hanyupininoutputformat();

//控制大小写

//大写:大写(中)

//小写:小写(中)

default format . set casetype(hanyupinyincassetype。大写);

//不带声调:不带音标(中)

//with _ tone _ number: 1-4个数字代表英标(中4)

//WITH_TONE_MARK:直接使用音标(必须是WITH_U_UNICODE,否则是个例外)(zhng)

default format . settonetype(HanyuPinyinToneType。带_音_号);

//WITH_V:用V表示 (nv)

//WITH_U_AND_COLON:对 (nu:)使用“U:”

//WITH_U_UNICODE:直接使用 (n)。

default format . setvchartype(HanyuPinyinVCharType。WITH _ U _ UNICODE);

//oHanyuPinyinStringArray如果传入的字符不是汉字,无法转换成拼音,则直接返回null。

string[]pinyin=pinyin helper . tohanypyinstring array(' heavy ',default format);

for(字符串:拼音){

system . out . println(str);

}

结果:

中4

冲2

其他工具类别

获取汉语拼音的第一个字母

将字符串中的汉字转换成拼音,英文字符保持不变。

/**

*获取汉语拼音的首字母

*

* @param中国

*汉字

* @返回

*/

公共静态字符串getAlpha(字符串chines) {

string pinyin name=“”;

char[]name char=Chines . tochararray();

hanyupininoutputformat default format=new hanyupininoutputformat();

default format . set casetype(hanyupinyincassetype。大写);

default format . settonetype(HanyuPinyinToneType。不带_ TONE);

for(int I=0;i nameChar.lengthi ) {

if (nameChar[i] 128) {

尝试{

pinyin name=pinyin helper . tohanyupinyinstringarray(

nameChar[i],defaultFormat)[0]。charAt(0);

} catch(badhanyupinoutputformatcomposition e){

e . printstacktrace();

}

}否则{

pinyin name=name char[I];

}

}

返回pinyinName

}

/**

*字符串中的汉字转换为拼音,英文字符保持不变。

*

* @param输入字符串

*汉字

* @返回

*/

公共静态字符串getPingYin(字符串输入字符串)>

hanyupininoutput format=new hanyupininoutput format();

格式。seta setype(hanyupinyincancetype).小写字母

格式。settonetype(hanyupinyintontype).无色调;

格式。setvcharype(hanyupinyinvchartfype).用_ v;

输出字符串=';

if (inputString!=空输入字符串.长度()0

!空值. equals(输入字符串))& gt

char[] input=inputString.trim().toraraarray();

尝试[

for(int I=0);输入。长度:(I)>

如果(Java。郎。性格。tostring)(输入[我].匹配(

"[\ \ U4和00-\ \ u9 fa 5]"]

字符串[]temp=pinyinhelper。tohanyupinyinstring数组(

输入[我],格式;

输出=temp[0];

}其他

输出=Java。郎。性格。tostring(input[I]);

}

} catch(badhayuninputput格式组合e)}

e。printstacktrace();

}

}否则

返回' * ';

}

返回输出;

}

/**

*汉字转换为汉语拼音首字母,英文字符不变

*

* @中文参数

*汉字

* @返回拼音

*/

公共静态字符串convertertofirstspell(中文字符串)>

字符串pinyin name=';

char[] nameChar=中文。toraraarray();

hanyupininoutput format默认格式=new hanyupininoutput format();

默认格式。seta setype(hanyupinyincancetype).大写字母

默认格式。settonetype(hanyupinyintontype).无色调;

for(int I=0);我叫夏尔。长度(I)>

如果(名称char[I]128)}

尝试[

pinyinname=pinyinhelper。tohanyupinyinstring数组(

nameChar[i],默认格式[0].charat(0);

} catch(badhayuninputput格式组合e)}

e。printstacktrace();

}

}否则

pinyin name=name char[I];

}

}

返回拼音姓名;

}

更多关于Java(Java)汉字转拼音拼音4j用法请查看下面的相碰链接

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: