-
大小: 175KB文件類(lèi)型: .zip金幣: 2下載: 0 次發(fā)布日期: 2021-05-12
- 語(yǔ)言: Java
- 標(biāo)簽:
資源簡(jiǎn)介
java工具類(lèi) 實(shí)現(xiàn)漢字與拼音的自動(dòng)轉(zhuǎn)換,支持中文字符和拼音之間的轉(zhuǎn)換。拼音輸出格式可以定制。

代碼片段和文件信息
package?cn.itcast.bos.utils;
import?java.util.Arrays;
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.exception.BadHanyuPinyinOutputFormatCombination;
public?class?PinYin4jUtils?{
/**
?*?將字符串轉(zhuǎn)換成拼音數(shù)組
?*?
?*?@param?src
?*?@return
?*/
public?static?String[]?stringToPinyin(String?src)?{
return?stringToPinyin(src?false?null);
}
/**
?*?將字符串轉(zhuǎn)換成拼音數(shù)組
?*?
?*?@param?src
?*?@return
?*/
public?static?String[]?stringToPinyin(String?src?String?separator)?{
return?stringToPinyin(src?true?separator);
}
/**
?*?將字符串轉(zhuǎn)換成拼音數(shù)組
?*?
?*?@param?src
?*?@param?isPolyphone
?*????????????是否查出多音字的所有拼音
?*?@param?separator
?*????????????多音字拼音之間的分隔符
?*?@return
?*/
public?static?String[]?stringToPinyin(String?src?boolean?isPolyphone
String?separator)?{
//?判斷字符串是否為空
if?(““.equals(src)?||?null?==?src)?{
return?null;
}
char[]?srcChar?=?src.toCharArray();
int?srcCount?=?srcChar.length;
String[]?srcStr?=?new?String[srcCount];
for?(int?i?=?0;?i? srcStr[i]?=?charToPinyin(srcChar[i]?isPolyphone?separator);
}
return?srcStr;
}
/**
?*?將單個(gè)字符轉(zhuǎn)換成拼音
?*?
?*?@param?src
?*?@return
?*/
public?static?String?charToPinyin(char?src?boolean?isPolyphone
String?separator)?{
//?創(chuàng)建漢語(yǔ)拼音處理類(lèi)
HanyuPinyinOutputFormat?defaultFormat?=?new?HanyuPinyinOutputFormat();
//?輸出設(shè)置,大小寫(xiě),音標(biāo)方式
defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
StringBuffer?tempPinying?=?new?StringBuffer();
//?如果是中文
if?(src?>?128)?{
try?{
//?轉(zhuǎn)換得出結(jié)果
String[]?strs?=?PinyinHelper.toHanyuPinyinStringArray(src
defaultFormat);
//?是否查出多音字,默認(rèn)是查出多音字的第一個(gè)字符
if?(isPolyphone?&&?null?!=?separator)?{
for?(int?i?=?0;?i? tempPinying.append(strs[i]);
if?(strs.length?!=?(i?+?1))?{
//?多音字之間用特殊符號(hào)間隔起來(lái)
tempPinying.append(separator);
}
}
}?else?{
tempPinying.append(strs[0]);
}
}?catch?(BadHanyuPinyinOutputFormatCombination?e)?{
e.printStackTrace();
}
}?else?{
tempPinying.append(src);
}
return?tempPinying.toString();
}
public?static?String?hanziToPinyin(String?hanzi)?{
return?hanziToPinyin(hanzi?“?“);
}
/**
?*?將漢字轉(zhuǎn)換成拼音
?*?
?*?@param?hanzi
?*?@param?separator
?*?@return
?*/
public?static?String?hanziToPinyin(String?hanzi?String?separator)?{
//?創(chuàng)建漢語(yǔ)拼音處理類(lèi)
HanyuPinyinOutputFormat?defaultFormat?=?new?HanyuPinyinOutputFormat();
//?輸出設(shè)置,大小寫(xiě),音標(biāo)方式
defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
String?pinyingStr?=?““;
try?{
?屬性????????????大小?????日期????時(shí)間???名稱(chēng)
-----------?---------??----------?-----??----
?????文件????????7541??2015-01-07?12:16??pinyin4j\PinYin4jUtils.java
?????文件??????188920??2015-01-07?12:16??pinyin4j\pinyin4j-2.5.0.jar
?????目錄???????????0??2018-01-31?19:58??pinyin4j\
評(píng)論
共有 條評(píng)論