/**获取姓名全拼和首字母
* @param chinese 汉语名称
* @return Map<String, String> fullPinyin : 全拼 simplePinyin : 首字母
* @author
* @date 2014-7-4
*/
public Map<String, String> changeChinese2Pinyin(String chinese) {
Map<String, String> pinyin = new HashMap<String, String>();
HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
format.setCaseType(HanyuPinyinCaseType.LOWERCASE);
format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
format.setVCharType(HanyuPinyinVCharType.WITH_V);
StringBuffer fullPinyin = new StringBuffer();
StringBuffer simplePinyin = new StringBuffer();
char[] chineseChar = chinese.toCharArray();
for (int i = 0; i < chineseChar.length; i++) {
String[] str = null;
try {
str = PinyinHelper.toHanyuPinyinStringArray(chineseChar[i],
format);
} catch (BadHanyuPinyinOutputFormatCombination e) {
e.printStackTrace();
}
if (str != null) {
fullPinyin = fullPinyin.append(str[0].toString());
simplePinyin = simplePinyin.append(str[0].charAt(0));
}
if (str == null) {
String regex = "^[0-9]*[a-zA-Z]*+$";
Pattern pattern = Pattern.compile(regex);
Matcher m = pattern.matcher(String.valueOf(chineseChar[i]));
if (m.find()) {
fullPinyin = fullPinyin.append(chineseChar[i]);
simplePinyin = simplePinyin.append(chineseChar[i]);
}
}
}
pinyin.put("fullPinyin", fullPinyin.toString());
pinyin.put("simplePinyin", simplePinyin.toString().toUpperCase());
return pinyin;
}
java 获取姓名全拼和首字母
最新推荐文章于 2023-09-22 17:12:36 发布