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

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

利用Java开源库把汉字转拼音(推荐OK)
2009年07月22日 19:05

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

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

下载地址:pinyin4j-2.5.0.zip

基本用法,如下示例

Java代码
  1. /**
  2. * 汉字转换位汉语拼音,英文字符不变
  3. * @author xuke
  4. *
  5. */
  6. public class Cn2Spell {
  7. /**
  8. * 汉字转换位汉语拼音首字母,英文字符不变
  9. * @param chines 汉字
  10. * @return 拼音
  11. */
  12. public static String converterToFirstSpell(String chines){
  13. String pinyinName = "";
  14. char[] nameChar = chines.toCharArray();
  15. HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
  16. defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
  17. defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
  18. for (int i = 0; i < nameChar.length; i++) {
  19. if (nameChar[i] > 128) {
  20. try {
  21. pinyinName += PinyinHelper.toHanyuPinyinStringArray(nameChar[i], defaultFormat)[0].charAt(0);
  22. } catch (BadHanyuPinyinOutputFormatCombination e) {
  23. e.printStackTrace();
  24. }
  25. }else{
  26. pinyinName += nameChar[i];
  27. }
  28. }
  29. return pinyinName;
  30. }
  31. /**
  32. * 汉字转换位汉语拼音,英文字符不变
  33. * @param chines 汉字
  34. * @return 拼音
  35. */
  36. public static String converterToSpell(String chines){
  37. String pinyinName = "";
  38. char[] nameChar = chines.toCharArray();
  39. HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
  40. defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
  41. defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
  42. for (int i = 0; i < nameChar.length; i++) {
  43. if (nameChar[i] > 128) {
  44. try {
  45. pinyinName += PinyinHelper.toHanyuPinyinStringArray(nameChar[i], defaultFormat)[0];
  46. } catch (BadHanyuPinyinOutputFormatCombination e) {
  47. e.printStackTrace();
  48. }
  49. }else{
  50. pinyinName += nameChar[i];
  51. }
  52. }
  53. return pinyinName;
  54. }
  55. public static void main(String[] args) {
  56. System.out.println(converterToFirstSpell("欢迎来到最棒的Java中文社区"));
  57. }
  58. }
/*** 汉字转换位汉语拼音,英文字符不变* @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

posted on 2012-03-28 09:32 lexus 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/lexus/archive/2012/03/28/2420667.html

利用Java开源库把汉字转拼音(推荐OK)_爱题巴.爱技术.小川哥_百度空间相关推荐

  1. GitHub上那些值得一试的JAVA开源库--转

    原文地址:http://www.jianshu.com/p/ad40e6dd3789 作为一名程序员,你几乎每天都会使用到GitHub上的那些著名Java第三方库,比如Apache Commons,S ...

  2. 利用 yaml-cpp 开源库读写 yaml 配置文件—— 读写部分

    利用 yaml-cpp 开源库读写 yaml 配置文件-- 读写部分 YAML文件解析 Node 读写yaml文件 config.yaml内容 test_yaml.cpp文件内容 重要内容简单解释 n ...

  3. 整理的常用JAVA开源库简介

    Jakarta common: Commons Logging Jakarta Commons Logging (JCL)提供的是一个日志(Log)接口(interface),同时兼顾轻量级和不依赖于 ...

  4. 大力推荐的超牛GitHub top 100的Java开源库

    1. React Native 这个是 Facebook 在 React.js Conf 2015 大会上推出的基于 JavaScript 的开源框架 React Native, 该框架结合了 Web ...

  5. 几种常见的java开源库,及其功能介绍

    1.Commons Math 是Apache上一个轻量级自容器的数学和统计计算方法包,包含大多数常用的数值算法. 2.LWJGL(Lightweight Java Game Library)可以帮助J ...

  6. java pinyin4j_java实现中文汉字转拼音 Pinyin4j的基本用法

    一.前言 工作中有时候会遇到汉字拼音转换的需求,例如:用户首字母搜索某个内容的时候,wzry 可搜索 王者荣耀相关的. 这里推荐使用Pinyin4j,它是sourceforge.net上的一个开源项目 ...

  7. java开源库生成折线图_Android HelloChart开源库图表之折线图的实例代码

    前面我们介绍了开源图表库MPAndroidChart,请参考: 我们今天介绍的将是一个更为优秀的图表库,比MPAndroidChart性能更好,功能更完善,UI风格更美观,坐标轴更精细. 支持缩放.滑 ...

  8. java使用pinyin4j实现汉字到拼音转换

    1.在pom文件中导入pinyin4j的依赖 <dependency><groupId>com.belerweb</groupId><artifactId&g ...

  9. java tess4j训练库_java语言下利用tess4j开源库进行图片中的文本提取

    一,tess4j 简单介绍 Tess4J是对tesseract -OCR API.的Java JNA 封装,使java能够通过调用Tess4J的API来使用tesseract -OCR 我有一篇博客也 ...

  10. 别再重复造轮子了,几个值得应用到项目中的 Java 开源库送给你

    风筝我作为一个野路子开发者,直到遇见下面的这几个工具库,才知道之前重复造了不少轮子,而且轮子还不一定有人家的圆.相信跟我一样,没事儿造轮子的人还不在少数,有些人就是对造轮子感兴趣,这个咱也无话可说,但 ...

最新文章

  1. 【linux+C】神器 vim + 指针相关客串
  2. SSL/TLS协议运行机制的概述
  3. SAP Spartacus RouterState
  4. CF1192B Dynamic Diameter(LCT)
  5. 开源GIS系统关系图
  6. 【项目相关】MVC中将WebUploader进行封装
  7. Centos7.x 装机优化
  8. [读书笔记]流畅的Python(Fluent Python)
  9. TF-IDF算法介绍及实现
  10. SGMII和RGMII入门学习
  11. 字符串的倒叙输出(直接倒叙和单词倒叙)
  12. 建设规划合理、高效便捷的现代物流中心——浙江嘉兴市局(公司)卷烟物流配送中心建设纪实...
  13. 工作辛苦了,提前祝大家五一劳动节快乐!!
  14. 社交电商如何持续进化?来看看最新的拼团玩法——七人拼团
  15. Spring-AOP切入点表达式详解
  16. 多线程的实现与多线程的同步机制-让你轻松掌握多线程编程
  17. 迅雷播放插件下载的在线字幕位置
  18. 零中频接收机频率转换图_低成本ADS-B接收机去混合技术
  19. 【初次见面,请多关照】
  20. Ubuntu18.04开机自动挂载Nas硬盘

热门文章

  1. 插桩 java_“插桩”式技术
  2. C++(21)——反向输出一个三位数
  3. 计算机平面设计主要学什么,学习平面设计都有哪些课程?
  4. 光洋PLC以太网通讯数据采集解决方案
  5. FIR 带通滤波器参数设计流程
  6. 惠普计算机X9W2AV参数,MAX220CPE,MAX220CPE pdf中文资料,MAX220CPE引脚图,MAX220CPE电路-Datasheet-电子工程世界...
  7. CreatePipe()函数
  8. FlashFXP 5.4.0注册码
  9. 北斗卫星广播星历计算卫星位置
  10. 汇编语言程序vs. 汇编程序