maven导入:
<!-- https://mvnrepository.com/artifact/com.belerweb/pinyin4j -->
<dependency>
<groupId>com.belerweb</groupId>
<artifactId>pinyin4j</artifactId>
<version>2.5.1</version>
</dependency>
Demo:
/**
* 2020年6月18日上午10:31:01
*/
package testpinyin;
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.HanyuPinyinVCharType;
import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;
/**
* @author XWF
*
*/
public class TestPinYin {
/**
* @param args
*/
public static void main(String[] args) {
char ch = '好';
String[] s = PinyinHelper.toHanyuPinyinStringArray(ch);
System.out.println(Arrays.asList(s));
HanyuPinyinOutputFormat f = new HanyuPinyinOutputFormat();//默认:LOWERCASE,WITH_U_AND_COLON,WITH_TONE_NUMBER
f.setCaseType(HanyuPinyinCaseType.UPPERCASE);
// HanyuPinyinCaseType.LOWERCASE 小写
// HanyuPinyinCaseType.UPPERCASE 大写
f.setVCharType(HanyuPinyinVCharType.WITH_U_UNICODE);
// HanyuPinyinVCharType.WITH_U_AND_COLON 用u和冒号表示
// HanyuPinyinVCharType.WITH_U_UNICODE 用u的unicode表示
// HanyuPinyinVCharType.WITH_V; 用v表示
f.setToneType(HanyuPinyinToneType.WITH_TONE_MARK);
// HanyuPinyinToneType.WITH_TONE_MARK 声调用符号表示(只能搭配"WITH_U_UNICODE"使用)
// HanyuPinyinToneType.WITH_TONE_NUMBER 声调用数字表示
// HanyuPinyinToneType.WITHOUT_TONE 不显示声调
try {
s = PinyinHelper.toHanyuPinyinStringArray(ch, f);
} catch (BadHanyuPinyinOutputFormatCombination e) {
e.printStackTrace();
}
System.out.println(Arrays.asList(s));
}
}
结果:
关于配置组合和效果源码里已经说的很清楚了: