赞
踩
链接:https://pan.baidu.com/s/1aRkPu8NTU8udxXdUNwOQUA
提取码:klrj
操作过程可以查看我的另一个文档, 里面介绍了如何将jar文件导入到maven仓库中
maven的jar包手动导入maven管理
<dependency>
<groupId>com.github.open-android</groupId>
<artifactId>pinyin4j</artifactId>
<version>2.5.0</version>
</dependency>
HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat(); // UPPERCASE:大写 (ZHONG) // LOWERCASE:小写 (zhong) format.setCaseType(HanyuPinyinCaseType.LOWERCASE); // WITHOUT_TONE:无音标 (zhong) // WITH_TONE_NUMBER:1-4数字表示英标 (zhong4) // 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); String[] pinyin = PinyinHelper.toHanyuPinyinStringArray('重', format);
public class PinYin4JTest { public static String getPinYin(String inputString) { HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat(); format.setCaseType(HanyuPinyinCaseType.LOWERCASE); format.setToneType(HanyuPinyinToneType.WITH_TONE_NUMBER); format.setVCharType(HanyuPinyinVCharType.WITH_U_UNICODE); char[] input = inputString.trim().toCharArray(); StringBuffer output = new StringBuffer(""); try { for (int i = 0; i < input.length; i++) { if (Character.toString(input[i]).matches("[\\u4E00-\\u9FA5]+")) { String[] temp = PinyinHelper.toHanyuPinyinStringArray(input[i], format); output.append(temp[0]); output.append(" "); } else output.append(Character.toString(input[i])); } } catch (BadHanyuPinyinOutputFormatCombination e) { e.printStackTrace(); } return output.toString(); } /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub System.out.println(getPinYin("中华人民共和国")); } }
zhong1 hua2 ren2 min2 gong4 he2 guo2
pinyin4j 我在使用时, 发现没有办法区分多音字, 例如 “还钱
” 它会转换成 “hai2 qian2
”
“商贾(gu)
” 会转换成 “shang1 jia3
”
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。