锁定老帖子 主题:获取汉语拼音
精华帖 (0) :: 良好帖 (0) :: 新手帖 (6) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-11-18
最后修改:2010-11-19
package com.supben.util; import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType; import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat; import net.sourceforge.pinyin4j.format.HanyuPinyinToneType; import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType; import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination; public class SpellUtils { /** * 获取全部拼音 * * @param src * 原字符串 * @return */ public static String getFull(String src) { char[] srcChar = src.toCharArray(); String[] srcArry = new String[srcChar.length]; HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat(); // 设置格式 format.setCaseType(HanyuPinyinCaseType.LOWERCASE); format.setToneType(HanyuPinyinToneType.WITHOUT_TONE); format.setVCharType(HanyuPinyinVCharType.WITH_V); String result = ""; try { for (int i = 0; i < srcChar.length; i++) { // 判断是否为汉字字符 if (Character.toString(srcChar[i]) .matches("[\\u4E00-\\u9FA5]+")) { srcArry = PinyinHelper.toHanyuPinyinStringArray(srcChar[i], format); result += srcArry[0]; } else result += Character.toString(srcChar[i]); } return result; } catch (BadHanyuPinyinOutputFormatCombination e1) { e1.printStackTrace(); } return result; } /** * 获取首字母拼音 * * @param str * 原字符串 * @return */ public static String getFirst(String str) { String result = ""; for (int j = 0; j < str.length(); j++) { char word = str.charAt(j); String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(word); if (pinyinArray != null) { result += pinyinArray[0].charAt(0); } else { result += word; } } return result; } } 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2010-11-18
jar包提供一些,谢谢
|
|
返回顶楼 | |
发表时间:2010-11-18
用pinyin4j
|
|
返回顶楼 | |
发表时间:2010-11-18
-----------直接调用系统dll就可以了
|
|
返回顶楼 | |
发表时间:2010-11-19
我是来看PinyinHelper.toHanyuPinyinStringArray的
|
|
返回顶楼 | |
发表时间:2010-11-19
.........
大哥 你用的工具包 也发发撒。。。 这样代码 我们看了也么用。。。。。。 |
|
返回顶楼 | |
发表时间:2010-11-19
据说对多音支持不好!比如 银行 会显示 yin xing
|
|
返回顶楼 | |
发表时间:2010-11-19
哎,你用了pinyin4j,有什么好发的呢
|
|
返回顶楼 | |
发表时间:2010-11-19
ray_linn 写道 -----------直接调用系统dll就可以了
不在windows下不就完了 |
|
返回顶楼 | |
发表时间:2010-11-19
ray_linn 写道 -----------直接调用系统dll就可以了
呵呵,怎么调用dll,JNI,JNA?大材小用了吧。还有,你调用谁的dll,搜狗?谷歌?腾讯?。。。。你要是说百度或者搜狗的云API我还算相信。。 |
|
返回顶楼 | |