Java中文转换为英文拼音
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;
/**
* 中文转换为英文拼音
*
* @param str 中文字符串
* 需导入依赖
* <dependency>
* <groupId>com.belerweb</groupId>
* <artifactId>pinyin4j</artifactId>
* <version>2.5.0</version>
* </dependency>
*/
public static String getChineseToPinyin(String str) {
// 中文字符串转换为字符数组
char[] chars = str.toCharArray();
// 设置转换格式
HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
// 小写
format.setCaseType(HanyuPinyinCaseType.LOWERCASE);
// 无声调,WITH_TONE_NUMBER表示用数字表示声调, WITH_TONE_MARK表示用声调符号表示
format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
// 特殊拼音ü的的显示格式
format.setVCharType(HanyuPinyinVCharType.WITH_V);
StringBuilder result = new StringBuilder();
try {
for (char c : chars) {
// 通过正则判断是否为汉字字符
if (Character.toString(c).matches("[\\u4E00-\\u9FA5]+")) {
String[] s = PinyinHelper.toHanyuPinyinStringArray(c, format);
result.append(s[0]);
} else {
result.append(c);
}
}
return result.toString();
} catch (BadHanyuPinyinOutputFormatCombination e1) {
e1.printStackTrace();
}
return result.toString();
}
更多方法访问Java工具网[utils.net.cn](http://utils.net.cn)
每个方法单独使用,不互相依赖,持续更新!