在做的列表排序的时候,想按拼音首字母排序,于是在网上找到pinyin4j这个开源项目,简单介绍一下这个包的使用吧。
Pinyin4j是一个流行的Java库,支持中文字符和拼音之间的转换。拼音输出格式可以定制。一般用到的就是PinyinHelper类里的静态方法toHanyuPinyinStringArray(),直接传入汉字char类型,返回拼音的字符串数组。
String[] s1 = PinyinHelper.toHanyuPinyinStringArray(c1, outputFormat);
String[] s2 = PinyinHelper.toHanyuPinyinStringArray(c2, outputFormat);
若想设置拼音的输出格式,还可以新建一个HanyuPinyinOutputFormat对象
HanyuPinyinOutputFormat outputFormat = new HanyuPinyinOutputFormat();
outputFormat.setToneType(HanyuPinyinToneType.WITH_TONE_NUMBER);//设置音调格式
outputFormat.setVCharType(HanyuPinyinVCharType.WITH_V);//设置ü的格式
outputFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);//设置大小写
音调格式:
WITH_TONE_MARK:输出带音调,如:dǎ
WITH_TONE_NUMBER:音调换为数字,如:da3
WITHOUT_TONE:没有音调,如:da
ü的格式:
WITH_U_AND_COLON:ü输出为u
WITH_U__UNICODE:ü输出为Unicode中的ü
WITH_V:ü输出为v
大小写:
LOWERCASE:小写
UPPERCASE:大写
最后附上pinyin4j英文API网址:http://pinyin4j.sourceforge.net/pinyin4j-doc/overview-summary.html ,更多用法可以看这里。