首页IT科技java将汉字转换为拼音怎么写(利用Java开源库把汉字转拼音(推荐OK)_爱题巴.爱技术.小川哥_百度空间)

java将汉字转换为拼音怎么写(利用Java开源库把汉字转拼音(推荐OK)_爱题巴.爱技术.小川哥_百度空间)

时间2025-09-12 11:25:44分类IT科技浏览9521
导读:2009年07月22日 19:05...

2009年07月22日 19:05

最近做的项目                   ,因为下拉框中的项目太多                            ,需要有个过滤的方法                   。我想的是键入汉语拼音首字母即时过滤下拉内容                            。

在网上找了好一会          ,发现了有个专门用来将中文转换成汉语拼音的Java的开源库          ,Pinyin4j                            ,

下载地址:pinyin4j-2.5.0.zip

基本用法                   ,如下示例

Java代码
/** * 汉字转换位汉语拼音          ,英文字符不变 * @author xuke * */ publicclass Cn2Spell { /** * 汉字转换位汉语拼音首字母                             ,英文字符不变 * @param chines 汉字 * @return 拼音 */ publicstatic String converterToFirstSpell(String chines){ String pinyinName = ""; char[] nameChar = chines.toCharArray(); HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat(); defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE); defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE); for (int i = 0; i < nameChar.length; i++) { if (nameChar[i] > 128) { try { pinyinName += PinyinHelper.toHanyuPinyinStringArray(nameChar[i], defaultFormat)[0].charAt(0); } catch (BadHanyuPinyinOutputFormatCombination e) { e.printStackTrace(); } }else{ pinyinName += nameChar[i]; } } return pinyinName; } /** * 汉字转换位汉语拼音                   ,英文字符不变 * @param chines 汉字 * @return 拼音 */ publicstatic String converterToSpell(String chines){ String pinyinName = ""; char[] nameChar = chines.toCharArray(); HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat(); defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE); defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE); for (int i = 0; i < nameChar.length; i++) { if (nameChar[i] > 128) { try { pinyinName += PinyinHelper.toHanyuPinyinStringArray(nameChar[i], defaultFormat)[0]; } catch (BadHanyuPinyinOutputFormatCombination e) { e.printStackTrace(); } }else{ pinyinName += nameChar[i]; } } return pinyinName; } publicstaticvoid main(String[] args) { System.out.println(converterToFirstSpell("欢迎来到最棒的Java中文社区")); } }
/** * 汉字转换位汉语拼音,英文字符不变 * @author xuke * */ public class Cn2Spell { /** * 汉字转换位汉语拼音首字母                             ,英文字符不变 * @param chines 汉字 * @return 拼音 */ public static String converterToFirstSpell(String chines){ String pinyinName = ""; char[] nameChar = chines.toCharArray(); HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat(); defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE); defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE); for (int i = 0; i < nameChar.length; i++) { if (nameChar[i] > 128) { try { pinyinName += PinyinHelper.toHanyuPinyinStringArray(nameChar[i], defaultFormat)[0].charAt(0); } catch (BadHanyuPinyinOutputFormatCombination e) { e.printStackTrace(); } }else{ pinyinName += nameChar[i]; } } return pinyinName; } /** * 汉字转换位汉语拼音                             ,英文字符不变 * @param chines 汉字 * @return 拼音 */ public static String converterToSpell(String chines){ String pinyinName = ""; char[] nameChar = chines.toCharArray(); HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat(); defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE); defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE); for (int i = 0; i < nameChar.length; i++) { if (nameChar[i] > 128) { try { pinyinName += PinyinHelper.toHanyuPinyinStringArray(nameChar[i], defaultFormat)[0]; } catch (BadHanyuPinyinOutputFormatCombination e) { e.printStackTrace(); } }else{ pinyinName += nameChar[i]; } } return pinyinName; } public static void main(String[] args) { System.out.println(converterToFirstSpell("欢迎来到最棒的Java中文社区")); } }

以上一个是完全转换成汉语拼音的,另一个是只转换首字母的                   ,遇到ASCII字符都不转换                             ,保留          。

http://tuoxie007.javaeye.com/blog/392240
声明:本站所有文章          ,如无特殊说明或标注                   ,均为本站原创发布          。任何个人或组织                            ,在未征得本站同意时          ,禁止复制                   、盗用                            、采集          、发布本站内容到任何网站          、书籍等各类媒体平台                            。如若本站内容侵犯了原著者的合法权益          ,可联系我们进行处理                   。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
发布和订阅模式(前端设计模式——发布订阅模式) css3中用什么来定义过渡动画的时间(一篇文章吃透 CSS3 属性: transition过渡 与 transform动画)