/**
* 将汉字转换为全拼,多音字以第一个音为准,不准确
* @param src 要转换的字符串
* @param splitStr 每个字间以什么相隔
* @return 拼音读音
* @modify history:
* 2014-3-28 LAY v1.0.0 创建
* ---------------------------------
*
*/
public String getPinYin(String src,String splitStr) {
char[] charArray = src.toCharArray();
// 设置汉字拼音输出的格式
HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
format.setCaseType(HanyuPinyinCaseType.LOWERCASE);
format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
format.setVCharType(HanyuPinyinVCharType.WITH_V);
StringBuffer sb = new StringBuffer();
try {
for (int i = 0; i < charArray.length; i++) {
// 判断是否为汉字字符
if (Character.toString(charArray[i]).matches("[\\u4E00-\\u9FA5]+")) {
String[] t2 = PinyinHelper.toHanyuPinyinStringArray(charArray[i], format);// 将汉字的几种全拼都存到t2数组中
sb.append(t2[0]);// 取出该汉字全拼的第一种读音并连接到字符串t4后
} else {
// 如果不是汉字字符,直接取出字符并连接到字符串t4后
sb.append(Character.toString(charArray[i]));
}
if (splitStr!=null&&i!=charArray.length-1) {
sb.append(splitStr);
}
}
} catch (BadHanyuPinyinOutputFormatCombination e) {
e.printStackTrace();
}
return sb.toString();
}
可以修改一下再用,这是取每个字的第一个字母
需要用到jar:pinyin4j-2.5.0.jar
java好像有pinyin4j的开源类库,你搜搜看,看能不能解决问题。