Android-中文转拼音

来源:互联网 发布:北京赛车计划软件 编辑:程序博客网 时间:2024/06/05 23:25
本文在CSDN博客首发转载请注明出处 http://blog.csdn.net/u011071427/article/details/50699255本文出自Allen李的博客


开发过程中有时候会遇到使用拼音模糊搜索等功能(典型的就是Android通讯录了),这时就需要汉字能够转化为拼音。
方法一:
Android系统的通讯录也实现了拼音搜索,所以我们可以偷个懒,直接拿Android系统中的实现类来实现这个功能。HanziToPinyin.java,但是这个类不可以直接使用,所以我们需要把源码放入代码中。
public void HanziToPinyin(String input){
    ArrayList<Token> list = HanziToPinyin.getInstance().get(input);
    for(Token token : list){
        System.out.print(token.source + " , " + token.target + " , " + token.type);  
    }
}
token.source=源 ;token.target=结果,token.type=音调
HanziToPinyin.java下载地址:点击打开链接

方法二:
使用pinyin4j这个开源库进行汉字转换拼音。下载地址:http://sourceforge.net/projects/pinyin4j/
首先使HanyuPinyinOutputFormat来格式化返回拼音的格式。

HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();

// UPPERCASE:大写  (ZHONG)
// LOWERCASE:小写  (zhong)
format.setCaseType(HanyuPinyinCaseType.UPPERCASE);

// WITHOUT_TONE:无音标  (zhong)
// WITH_TONE_NUMBER:1-4数字表示英标  (zhong4)
// WITH_TONE_MARK:直接用音标符(必须WITH_U_UNICODE否则异常)  (zhòng)
format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);

// WITH_V:用v表示ü  (nv)
// WITH_U_AND_COLON:用"u:"表示ü  (nu:)
// WITH_U_UNICODE:直接用ü (nü)
format.setVCharType(HanyuPinyinVCharType.WITH_V);

String[] vals = PinyinHelper.toHanyuPinyinStringArray(input, format);
1 0
原创粉丝点击