Github个人博客:https://joeyos.github.io
汉字转换为拼音
用一种简单的方法将字符串转化为拼音:
- 将需要转换的字符串t1里的字符t1[i]按照t3的格式格式化为拼音,并复制给t2
- 如果t1[i]不是汉字,则不转换,直接把t1[i]复制给t2
- 将t2首字母大写,复制给t4
这里将用到pinyin4j.jar
包,请自行百度下载。
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;
public class Chinese2Pinyin {
public static String getPinyin(String src) {
char[] t1 = null;
t1 = src.toCharArray();
String[] t2 = new String[t1.length];
HanyuPinyinOutputFormat t3 = new HanyuPinyinOutputFormat();
t3.setCaseType(HanyuPinyinCaseType.LOWERCASE);// 小写格式
t3.setToneType(HanyuPinyinToneType.WITHOUT_TONE);// 有无音标
t3.setVCharType(HanyuPinyinVCharType.WITH_V);
String t4 = "";
try {
for (int i = 0; i < t1.length; i++) {
// 判断是否为汉字字符
// if(t1[i] >= 32 && t1[i] <= 125)//ASCII码表范围内直接返回
if (String.valueOf(t1[i]).matches("[\\u4E00-\\u9FA5]+")) {
t2 = PinyinHelper.toHanyuPinyinStringArray(t1[i], t3);// 转化为拼音
t4 += t2[0].substring(0, 1).toUpperCase() + t2[0].substring(1);