package cn.ksource.test;
|
|
import net.sourceforge.pinyin4j.PinyinHelper;
|
import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
|
import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
|
import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;
|
|
public class Pinyin4j {
|
|
public String getCharacterPinYin(char c){
|
String[] pinyin = null;
|
HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
|
format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
|
try{
|
pinyin = PinyinHelper.toHanyuPinyinStringArray(c, format);
|
}catch(BadHanyuPinyinOutputFormatCombination e) {
|
e.printStackTrace();
|
}
|
// 如果c不是汉字,toHanyuPinyinStringArray会返回null
|
if(pinyin == null) return null;
|
// 只取一个发音,如果是多音字,仅取第一个发音
|
return pinyin[0];
|
}
|
|
public String getStringPinYin(String str){
|
StringBuilder sb = new StringBuilder();
|
String tempPinyin = null;
|
for(int i = 0; i < str.length(); ++i){
|
tempPinyin =getCharacterPinYin(str.charAt(i));
|
if(tempPinyin == null){
|
// 如果str.charAt(i)非汉字,则保持原样
|
sb.append(str.charAt(i));
|
} else{
|
sb.append(tempPinyin);
|
}
|
}
|
return sb.toString();
|
}
|
|
public String getFirstStringPinYin(String str){
|
StringBuilder sb = new StringBuilder();
|
String tempPinyin = null;
|
for(int i = 0; i < str.length(); ++i){
|
tempPinyin =getCharacterPinYin(str.charAt(i));
|
if(tempPinyin == null){
|
// 如果str.charAt(i)非汉字,则保持原样
|
sb.append(str.charAt(i));
|
} else{
|
sb.append(tempPinyin.charAt(0));
|
}
|
}
|
return sb.toString();
|
}
|
|
public static void main(String[] args) {
|
Pinyin4j test = new Pinyin4j();
|
String str = test.getStringPinYin("河南金明源信息技术有限公司");
|
String str1 = test.getFirstStringPinYin("郑州信源信息技术股份有限公司");
|
System.out.println(str);
|
System.out.println(str1);
|
}
|
|
}
|