汉字转拼音
原创
©著作权归作者所有:来自51CTO博客作者wx65829139ee118的原创作品,请联系作者获取转载授权,否则将追究法律责任
<!--中文转拼音-->
<dependency>
<groupId>com.belerweb</groupId>
<artifactId>pinyin4j</artifactId>
<version>2.5.0</version>
</dependency>
/**
* 得到中文首字母(中国 -> zg)
*
* @param str 需要转化的中文字符串
* @return 小写首字母缩写的字符串
*/
public static String getPinYinHeadChar(String str) {
StringBuilder convert = new StringBuilder();
if (StringUtils.isBlank(str)) {
return "";
}
String chineseStr = toStrByChinese(str);
for (int j = 0; j < chineseStr.length(); j++) {
char word = chineseStr.charAt(j);
String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(word);
if (pinyinArray != null) {
convert.append(pinyinArray[0].charAt(0));
} else {
convert.append(word);
}
}
String result = convert.toString().toLowerCase();
return result;
}
/**
* 提取字符串中文字符
*
* @param str
* @return
*/
public static String toStrByChinese(String str) {
Matcher m = CHINESE_PATTERN.matcher(str);
StringBuffer sb = new StringBuffer();
while (m.find()) {
sb.append(m.group());
}
return sb.toString();
}
示例:
public static void main(String[] args) {
String s = "您好,china中国";
String strByChinese = toStrByChinese(s);
System.out.println("strByChinese = " + strByChinese);
//结果:strByChinese = 您好中国
String pinYinHeadChar = getPinYinHeadChar(s);
System.out.println("pinYinHeadChar = " + pinYinHeadChar);
//结果:pinYinHeadChar = nhzg
}