pinyin4j使用
最近在列表排序上遇到了一个关于中文排序的问题 很自然的百度以后找到了一个工具pinyin4j
这里就pinyin4j的基础使用笔记一下 其实百度上也能得到类似的结果
?
首先来看一个HanyuPinyinOutputFormat的类 因为之后我们在将中文转化为拼音的过程中 需要传入这个参数
?
char[] s1Chars=s1.toCharArray();String s1Result="";//存储最后的结果try {for(int i=0;i<s1Chars.length;i++){//如果为中文if(String.valueOf(s1Chars[i]).matches("[\\u4E00-\\u9FA5]+")){String[] temp=PinyinHelper.toHanyuPinyinStringArray(s1Chars[i],format);s1Result+=temp[0];}else{s1Result+=String.valueOf(s1Chars[i]);}}} catch (BadHanyuPinyinOutputFormatCombination e) {e.printStackTrace();}?
?
要注意的是 如果是中英文混合的情况 需要区分对待 因为PinyinHelper.toHanyuPinyinStringArray方法如果传入一个英文字符 会返回null
之所以返回值是一个String数组 是因为可能有多音字的情况
?
附上pinyin4j.jar