最新消息:关注【太平洋学习网】微信公众号,可以获取全套资料,【全套Java基础27天】【JavaEE就业视频4个月】【Android就业视频4个月】

java汉字转拼音pinyin4j功能实现示例

Javaweb 太平洋学习网 浏览 评论

java汉字转拼音功能实现需要使用pinyin4j(pinyin for java)框架,使用也非常的简单,首先我们需要引入pinyin4j-2.5.0.jar包,或者直接引入pinyin4j maven,如下:

<dependency>
    <groupId>com.belerweb</groupId>
    <artifactId>pinyin4j</artifactId>
    <version>2.5.0</version>
</dependency>

使用pinyin4j将汉字转换为拼音也非常的简单,示例如下。

String hanzi = "我是中国人,重新崛起!";
HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
// UPPERCASE:大写  (ZHONG)
// LOWERCASE:小写  (zhong) 

format.setCaseType(HanyuPinyinCaseType.LOWERCASE);
// WITHOUT_TONE:无音标(zhong)  
// WITH_TONE_NUMBER:1-4数字表示英标的4个声调(zhong1)  
// WITH_TONE_MARK:如果用音标符(必须WITH_U_UNICODE否则会报异常)(zhōng)
format.setToneType(HanyuPinyinToneType.WITH_TONE_MARK);

// WITH_V:用v表示ü  (nv)  
// WITH_U_AND_COLON:用"u:"表示ü  (nu:)  
// WITH_U_UNICODE:直接用ü (nü)  
format.setVCharType(HanyuPinyinVCharType.WITH_U_UNICODE);

//参数1:需要转换的中文字符串
//参数2:转换规则
//参数3:用符号分隔,这里是空格符号
String hanyuPinyinString = PinyinHelper.toHanyuPinyinString(hanzi, format, " ");
System.out.println(hanyuPinyinString);

上面的示例将输出如下结果:“wŏ shì zhōng guó rén ,zhòng xīn jué qĭ !”,但是我们发现又错误了,比如“重新做人”被翻译成了“zhòng xīn jué qĭ”,这是因为我们使用toHanyuPinyinString()这个方法将一个中文句子转化为拼音,它是无法识别多音字的。

因此我们可能需要将中文句子拆分成多个字符,一个一个的转换成拼音,然后用String[]字符串数组来接收,并进行拼接,这样才可以不出错,例如汉字转拼音:

String[] pinyin = PinyinHelper.toHanyuPinyinStringArray("重");

这个多音字会返回字符串数组结果,然后进行筛选即可。

"zhòng"

"chóng"

toHanyuPinyinString()方法已经过时,官方推荐将中文字符串拆分成单个字符来一个个的转换,这样才可以避免多音字造成的困扰。

代码中说到使用音标符如果不使用WITH_TONE_MARK常量的话,就会报如下错误:

net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination: tone marks cannot be added to v or u:

来源网站:太平洋学习网,转载请注明出处:http://www.tpyyes.com/a/javaweb/2017/1204/420.html

    与本文相关的文章

    发表我的评论
    取消评论

    表情

    您的回复是我们的动力!

    • 昵称 (必填)

    网友最新评论