论坛首页 Java企业应用论坛

获取汉语拼音

浏览 10117 次
精华帖 (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;
	}
	
	

}


   发表时间:2010-11-18  
jar包提供一些,谢谢
0 请登录后投票
   发表时间:2010-11-18  
用pinyin4j
0 请登录后投票
   发表时间:2010-11-18  
-----------直接调用系统dll就可以了
0 请登录后投票
   发表时间:2010-11-19  
我是来看PinyinHelper.toHanyuPinyinStringArray的
0 请登录后投票
   发表时间:2010-11-19  
.........

大哥 你用的工具包 也发发撒。。。
这样代码 我们看了也么用。。。。。。
0 请登录后投票
   发表时间:2010-11-19  
据说对多音支持不好!比如  银行  会显示 yin xing
0 请登录后投票
   发表时间:2010-11-19  
哎,你用了pinyin4j,有什么好发的呢
0 请登录后投票
   发表时间:2010-11-19  
ray_linn 写道
-----------直接调用系统dll就可以了


不在windows下不就完了
  • 大小: 94 Bytes
0 请登录后投票
   发表时间:2010-11-19  
ray_linn 写道
-----------直接调用系统dll就可以了


呵呵,怎么调用dll,JNI,JNA?大材小用了吧。还有,你调用谁的dll,搜狗?谷歌?腾讯?。。。。你要是说百度或者搜狗的云API我还算相信。。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics