pinyin4j是一個免費的開源框架,可以把中文(多音字,繁體字)轉成拼音,是不是6到不行,而且還可以自定義輸出格式等;
官方網站:
下載后:
Paste_Image.png
<h3>一 使用(具體請看官方文檔):</h3>
<h4>1.HanyuPinyinOutputFormat類:</h4>格式化輸出類,用來設置輸出的拼音的格式
<h5>常用方法:</h5>
setCaseType(HanyuPinyinCaseType caseType) //HanyuPinyinCaseType是個枚舉類,用來設置轉換后拼音大小寫的,有以下枚舉值,以"民"為例
Options | Output |
---|---|
LOWERCASE | min2 |
UPPERCASE | MIN2 |
setToneType(HanyuPinyinToneType toneType)//用來設置音調相關的東西,有以下枚舉值,以"打"為例
Options | Output |
---|---|
WITH_TONE_NUMBER | da3(代表第三聲調) |
WITHOUT_TONE | da |
WITH_TONE_MARK | dǎ |
<h4>2.PinyinHelper類:</h4>將中文轉成拼音的工具類
<h5>常用方法:</h5>toHanyuPinyinStringArray(char ch)//根據一個中文字符返回一個拼音String[] (因為一個漢字可以有多個發音)
toHanyuPinyinStringArray(char ch, HanyuPinyinOutputFormat outputFormat)//根據一個中文字符和格式輸出類返回一個拼音String []
<h3>二 Demo:</h3>
public static void main(String[] args) throws BadHanyuPinyinOutputFormatCombination {
//1.創建一個格式化輸出對象
HanyuPinyinOutputFormat outputF = new HanyuPinyinOutputFormat();
//2.設置好格式
outputF.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
outputF.setCaseType(HanyuPinyinCaseType.LOWERCASE);
char ch='間';
String str[] = PinyinHelper.toHanyuPinyinStringArray(ch,outputF);
//3.打印輸出
System.out.println(Arrays.toString(str));
//結果為:[jian, jian],因為間有多音,但是我們選擇的音調類型是WITHOUT_TONE,所以拼音數組后面也沒有對應音調數字
}
以下是轉自別人大神的示例代碼: