public class China2SpellUtils {
/**
* 汉字转换位汉语拼音首字母,英文字符不变
*
* @param chines 汉字
* @return 拼音
*/
public static String converterToFirstSpell(String chines) {
StringBuffer pinyinName = new StringBuffer();
char[] nameChar = chines.toCharArray();
HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
for (int i = 0; i < nameChar.length; i++) {
if (nameChar[i] > 128) {
try {
pinyinName.append(PinyinHelper.toHanyuPinyinStringArray(nameChar[i], defaultFormat)[0].charAt(0));
} catch (Exception e) {
e.printStackTrace();
}
} else if (45 != nameChar[i]){//排除"-"号
pinyinName.append(nameChar[i]);
}
}
return pinyinName.toString();
}
/**
* 汉字转换位汉语拼音,英文字符不变
*
* @param chines 汉字
* @return 拼音
*/
public static String converterToSpell(String chines) {
StringBuffer pinyinName = new StringBuffer();
char[] nameChar = chines.toCharArray();
HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
for (int i = 0; i < nameChar.length; i++) {
if (nameChar[i] > 128) {
try {
pinyinName.append(PinyinHelper.toHanyuPinyinStringArray(nameChar[i], defaultFormat)[0]);
} catch (Exception e) {
e.printStackTrace();
}
} else {
pinyinName.append(nameChar[i]);
}
}
return pinyinName.toString();
}
/**
* 将输入简化成字母和数字的组合
* @param chines 字母,数字,汉字
* @return 字母和数字
*/
public static String onlyNumberAndLetter(String chines) {
String spellStr = Cn2SpellUtils.converterToFirstSpell(chines).toLowerCase();
if (spellStr.matches("^[a-z0-9]*$")){
return spellStr;
}else{
return spellStr.replaceAll("[^a-z0-9]*","");
}
}
<dependency>
<groupId>com.belerweb</groupId>
<artifactId>pinyin4j</artifactId>
<version>2.5.0</version>
</dependency>