
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 ChineseToEnglish { |
public static void main(String[] args) { |
System.out.println(getPingYin("辛倩倩521")); //后面跟的数字个字母不会被转换 |
System.out.println(getPingYin("辛倩倩")); |
//值得注意的是在多音字的问题上面转换没有那么智能 |
System.out.println(getPingYin("李长威")); //李长(Chang)威-->Zhang |
System.out.println(getPingYin("李常威")); //李常(Chang)威-->Chang |
|
System.out.println(getPinYinHeadChar("辛倩倩")); |
System.out.println(getCnASCII("辛倩倩")); |
} |
// 将汉字转换为全拼 |
public static String getPingYin(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 = ""; |
int t0 = t1.length; |
try { |
for (int i = 0; i < t0; i++) { |
// 判断是否为汉字字符 |
if (java.lang.Character.toString(t1[i]).matches( |
"[\\u4E00-\\u9FA5]+")) { |
t2 = PinyinHelper.toHanyuPinyinStringArray(t1[i], t3); |
t4 += t2[0]; |
} else |
t4 += java.lang.Character.toString(t1[i]); |
} |
// System.out.println(t4); |
return t4; |
} catch (BadHanyuPinyinOutputFormatCombination e1) { |
e1.printStackTrace(); |
} |
return t4; |
} |
// 返回中文的首字母 |
public static String getPinYinHeadChar(String str) { |
String convert = ""; |
for (int j = 0; j < str.length(); j++) { |
char word = str.charAt(j); |
String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(word); |
if (pinyinArray != null) { |
convert += pinyinArray[0].charAt(0); |
} else { |
convert += word; |
} |
} |
return convert; |
} |
// 将字符串转移为ASCII码 |
public static String getCnASCII(String cnStr) { |
StringBuffer strBuf = new StringBuffer(); |
byte[] bGBK = cnStr.getBytes(); |
for (int i = 0; i < bGBK.length; i++) { |
strBuf.append(Integer.toHexString(bGBK[i] & 0xff)); |
} |
return strBuf.toString(); |
} |
} |
// |
//Maven |
<!-- https://mvnrepository.com/artifact/com.belerweb/pinyin4j --> |
<dependency> |
<groupId>com.belerweb</groupId> |
<artifactId>pinyin4j</artifactId> |
<version>2.5.0</version> |
</dependency> |



