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)); } }结果:
关于配置组合和效果源码里已经说的很清楚了: