pinyin4j是一个免费的开源框架,可以把中文(多音字,繁体字)转成拼音,是不是6到不行,而且还可以自定义输出格式等;
官方网站:
下载后:
<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,所以拼音数组后面也没有对应音调数字
}
以下是转自别人大神的示例代码: