然后就想到要将汉字转为汉语拼音,在网上查找了一下,然后发现pinyin4j还不错,就采用了
代码:
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; /** * <将中文转换成汉语拼音> * <功能详细描述> * @author * @version [版本号, 2013-4-19] * @see [相关类/方法] * @since [产品/模块版本] */ public class PinyinHelperUtil { /** * <转换成首字母> * <功能详细描述> * @param chinese * @return * @see [类、类#方法、类#成员] */ public static String converterToFirstSpell(String chinese) { StringBuffer pinyinName = new StringBuffer(); // 转化为字符 char[] nameChar = chinese.toCharArray(); // 汉语拼音格式输出类 HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat(); // 输出设置,大小写,音标方式,V等 defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE); defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE); defaultFormat.setVCharType(HanyuPinyinVCharType.WITH_V); // 转换后的字符串数组 String[] strs; for (int i = 0; i < nameChar.length; i++) { // 如果是中文 if (nameChar[i] > 128) { try { strs = PinyinHelper.toHanyuPinyinStringArray(nameChar[i], defaultFormat); if (null != strs) { pinyinName.append(strs[0].charAt(0)); } } catch (BadHanyuPinyinOutputFormatCombination e) { e.printStackTrace(); } } else { // 不是中文字符 pinyinName.append(nameChar[i]); } } return pinyinName.toString(); } }
调用PinyinHelperUtil.converterToFirstSpell("张三");
会输出:zs