- 浏览: 2667288 次
- 性别:
- 来自: 成都
文章分类
最新评论
-
我素熊猫:
66666666666666
java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderL -
jonyzhou94:
1987_ming 写道1987_ming 写道System. ...
CXF框架入门实例 -
davidforit:
你那个“2004年Nutch创始人Doug Cutting基于 ...
《Hadoop基础教程》之初识Hadoop -
masuweng:
我的就是这么弄得,到了页面还是那个格式的 。
JSONObject转换JSON--将Date转换为指定格式 -
masuweng:
∑
JSONObject转换JSON--将Date转换为指定格式
以前在项目中遇到汉字转拼音的情况,于是在网上找到了pinyin4j这个工具包,非常有用,别的不说了,直接下代码:
import java.util.HashSet; import java.util.Set; import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType; import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat; import net.sourceforge.pinyin4j.format.HanyuPinyinToneType; import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType; import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination; /** * Description : * 处理汉字和对应拼音转换的工具类 */ public class PinYinUtil { /** * Description : * 传入汉字字符串,拼接成对应的拼音,返回拼音的集合 * 注:如果是两个汉字以内则为汉字的全拼,若超过两汉字则为首汉字全拼+后面汉字的首字母 */ public static Set<String> getPinYinSet(String src){ Set<String> lstResult = new HashSet<String>(); char[] t1 = null; //字符串转换成char数组 t1 = src.toCharArray(); if(t1.length<=2){ //①迭代汉字 for(char ch : t1){ String s[] = getPinYin(ch); Set<String> lstNew = new HashSet<String>(); //②迭代每个汉字的拼音数组 for(String str : s){ if(lstResult.size()==0){ lstNew.add(str); }else{ for(String ss : lstResult){ ss += str; lstNew.add(ss); } } } lstResult.clear(); lstResult = lstNew; } }else{ int index = 0; //①迭代汉字 for(char ch : t1){ index = index + 1; String s[] = getPinYin(ch); if(index>1){ for (int i = 0; i < s.length; i++) { s[i] = s[i].substring(0, 1); } } Set<String> lstNew = new HashSet<String>(); //②迭代每个汉字的拼音数组 for(String str : s){ if(lstResult.size()==0){ lstNew.add(str); }else{ for(String ss : lstResult){ ss += str; lstNew.add(ss); } } } lstResult.clear(); lstResult = lstNew; } } return lstResult; } /** * Description : * 传入汉字字符串,拼接成对应的拼音,返回拼音的集合 */ public static Set<String> getPinYins(String src){ Set<String> lstResult = new HashSet<String>(); char[] t1 = null; //字符串转换成char数组 t1 = src.toCharArray(); //①迭代汉字 for(char ch : t1){ String s[] = getPinYin(ch); Set<String> lstNew = new HashSet<String>(); //②迭代每个汉字的拼音数组 for(String str : s){ if(lstResult.size()==0){ lstNew.add(str); }else{ for(String ss : lstResult){ ss += str; lstNew.add(ss); } } } lstResult.clear(); lstResult = lstNew; } return lstResult; } /** * Description : * 传入中文汉字,转换出对应拼音 * 注:出现同音字,默认选择汉字全拼的第一种读音 */ public static String getPinYin(String src) { char[] t1 = null; t1 = src.toCharArray(); String[] t2 = new String[t1.length]; // 设置汉字拼音输出的格式 HanyuPinyinOutputFormat t3 = new HanyuPinyinOutputFormat(); t3.setCaseType(HanyuPinyinCaseType.LOWERCASE); t3.setToneType(HanyuPinyinToneType.WITHOUT_TONE); t3.setVCharType(HanyuPinyinVCharType.WITH_V); String t4 = ""; int t0 = t1.length; try { for (int i = 0; i < t0; i++) { // 判断能否为汉字字符 // System.out.println(t1[i]); if (Character.toString(t1[i]).matches("[\\u4E00-\\u9FA5]+")) { t2 = PinyinHelper.toHanyuPinyinStringArray(t1[i], t3);// 将汉字的几种全拼都存到t2数组中 t4 += t2[0];// 取出该汉字全拼的第一种读音并连接到字符串t4后 } else { // 如果不是汉字字符,间接取出字符并连接到字符串t4后 t4 += Character.toString(t1[i]); } } } catch (BadHanyuPinyinOutputFormatCombination e) { e.printStackTrace(); } return t4; } /** * Description : * 将单个汉字转换成汉语拼音,考虑到同音字问题,返回字符串数组的形式 */ public static String[] getPinYin(char src){ char[] t1 = {src}; String[] t2 = new String[t1.length]; // 设置汉字拼音输出的格式 HanyuPinyinOutputFormat t3 = new HanyuPinyinOutputFormat(); t3.setCaseType(HanyuPinyinCaseType.LOWERCASE); t3.setToneType(HanyuPinyinToneType.WITHOUT_TONE); t3.setVCharType(HanyuPinyinVCharType.WITH_V); // 判断能否为汉字字符 if (Character.toString(t1[0]).matches("[\\u4E00-\\u9FA5]+")) { try { // 将汉字的几种全拼都存到t2数组中 t2 = PinyinHelper.toHanyuPinyinStringArray(t1[0], t3); } catch (BadHanyuPinyinOutputFormatCombination e) { e.printStackTrace(); } } else { // 如果不是汉字字符,则把字符直接放入t2数组中 t2[0] = String.valueOf(src); } return t2; } /** * Description : * 传入没有多音字的中文汉字,转换出对应拼音 * 注:如果传入的中文中有任一同音字都会返回字符串信息:false */ public static String getNoPolyphone(String src){ char[] t1 = null; t1 = src.toCharArray(); String[] t2 = new String[t1.length]; // 设置汉字拼音输出的格式 HanyuPinyinOutputFormat t3 = new HanyuPinyinOutputFormat(); t3.setCaseType(HanyuPinyinCaseType.LOWERCASE); t3.setToneType(HanyuPinyinToneType.WITHOUT_TONE); t3.setVCharType(HanyuPinyinVCharType.WITH_V); String t4 = ""; int t0 = t1.length; try { for (int i = 0; i < t0; i++) { // 判断能否为汉字字符 // System.out.println(t1[i]); if (Character.toString(t1[i]).matches("[\\u4E00-\\u9FA5]+")) { t2 = PinyinHelper.toHanyuPinyinStringArray(t1[i], t3);// 将汉字的几种全拼都存到t2数组中 if(t2.length>1){ return "false"; }else{ t4 += t2[0];// 取出该汉字全拼的第一种读音并连接到字符串t4后 } } else { // 如果不是汉字字符,间接取出字符并连接到字符串t4后 t4 += Character.toString(t1[i]); } } } catch (BadHanyuPinyinOutputFormatCombination e) { e.printStackTrace(); } return t4; } }附件附带pinyin4j 2.5jar包。
- pinyin4j-2.5.0.jar (184.5 KB)
- 下载次数: 105
发表评论
-
关于HQL和JDBC SQL中字段相除的一点小经验
2016-02-25 11:42 3274最近在做一个功能,产 ... -
Java异常那些不得不说的事
2014-11-29 12:09 17017一、在finally块中做数据回收操作 比如数据库连接都 ... -
基于Java的通用图表接口设计与实现
2014-02-26 18:00 15009现如今,互联网上充斥 ... -
JSONObject转换JSON--将Date转换为指定格式
2014-02-18 22:12 76994项目中,经常会用JSONObject插件将JavaBean或 ... -
Java开发笔记
2012-12-13 10:30 17561、Map<key,value>的remove ... -
org.hibernate.hql.ast.QuerySyntaxException: unexpected token: on near line 1解决方案
2012-09-12 16:03 28067文章摘自:http://blog.csdn.net/yangw ... -
Java反射常用机制
2012-08-04 17:58 8346首先要求大家对Java泛型知识有所了解,因为程序代码中大量使 ... -
JDBC常用API之外的总结
2012-04-20 15:43 6416做JAVA的人玩JDBC肯定已经很熟练了,像DriverMa ... -
JSP实现指定盘符路径下的图片显示
2012-02-14 09:54 23488开发人员都知道<img src="" ... -
Java实现文件上传
2012-02-13 23:57 319643最近自己在做一个小系统玩的时候涉及到了文件的上传,于是在网上 ... -
commons-fileupload实现文件上传功能实例
2012-01-17 21:50 67347Apache提供的commons-fileupload ja ... -
J2EE监听器和过滤器基础
2011-09-02 16:56 7281Servlet程序由Servlet,Filter和Liste ... -
java通信之Socket通信基础
2011-06-21 21:08 5940正处于网络环境下的两个程序,它们之间通过一个交互的连接来实现数 ... -
Java通信之URL通信基础
2011-06-21 11:15 3380java对网络通信以及提供了比较全面的jdk支持,java.n ... -
java集合排序笔记
2011-06-15 15:21 1578public class CollectionDemo imp ... -
Java IO笔记
2011-06-15 14:23 1033public static void main(String ... -
java web项目整体异常处理机制
2011-06-08 22:04 12940在实际的j2ee项目中,系 ... -
解决带换行符的字段在web页面无法换行的问题
2011-05-31 11:46 18815在BS项目,有时候大家 ... -
[Microsoft][ODBC Microsoft Access 驱动程序] INSERT INTO 语句的语法错误的可能原因
2011-05-30 23:34 6098今天使用JDBC-ODBC桥接来操作Access数据库,发现了 ... -
java异常处理(初级)
2011-02-17 00:14 8097从学习到现在从事java开发一年多了,个人觉得对java只了解 ...
相关推荐
基于java的开发源码-中文转拼音库 pinyin4j.zip 基于java的开发源码-中文转拼音库 pinyin4j.zip 基于java的开发源码-中文转拼音库 pinyin4j.zip 基于java的开发源码-中文转拼音库 pinyin4j.zip 基于java的开发源码-...
java安卓android汉字转拼音中文转拼音pinyin4j简化精简版. 网上流传的有180KB,太大了,对于android开发来说。我精简了很多无关内容,收录常用汉字大约2万个,完全够用了,还专门写了一个helper类,直接调用这个...
汉字转拼音jar包附带封装 适用于Android和Java
通过网上的汉字拼音对照表构建的一个二维数组,通过遍历汉字获取拼音,基本很多生僻字都支持,看了网上的通过GBK码获得的拼音代码,这种代码会导致很多汉字不能找到,比如一坨粪的”坨“。这个的话连“丨”都能查到...
java版本汉字转拼音库pinyin4j,以及pinyin4j中用到的sparta库,都是源码。
pinyin4j能够根据中文字符获取其对应的拼音,而且拼音的格式可以定制。 pinyin4j是一个支持将中文转换到拼音的Java开源类库。 支持简体中文和繁体中文字符; 支持转换到汉语拼音,通用拼音, 威妥玛拼音(威玛拼法...
汉字转拼音的JAVA代码示例,可以根据要求将汉字转换为相应的拼音或拼音首字母等,基于流行的pinyin4j库,使用简单方便
使用拼音4j将汉字转为拼音的代码及其pinyin4j的jar包
1、添加pinyin4j-2.5.0.jar 的jar包 2、PinYinUtil至此汉字转换拼音,汉字首字母
汉字转拼音代码 及pinyin4j-2.5.0.jar包
实用汉字转拼音 绿色版4.7版更新功能: 1).加入把转换的结果(拼音或日语假名等)导出成html网页 2).修改结果导出到WPS(wps2005版本更新) 3).修改导出到word时的一个bug 4).把界面变小一点点,让800*600下也能显示完整 ...
汉字转拼音jar包,也可直接依赖 compile 'com.belerweb:pinyin4j:2.5.0'
汉字 转换 拼音
java源码:中文转拼音库 pinyin4j.zip
实现思路很简单,汉字有21个声母:b, p, m, f, d, t, n, l, g, k, h, j, q, x, zh, ch, sh, r, z, c, s 有韵母24个,其中单韵母有6个:a, o, e, i, u, v, 复韵母有18个:ai , ei, ui , ao, ou, iu , ie, ve, er, an...
汉字转拼音,或拼音缩写,pinyin4j。maven,非maven项目如需jar包私聊我
将简体中文和繁体中文转换拼音的jar包,将简体中文和繁体中文转换拼音的jar包
纯字库转换,包含几乎所有汉字,网上现有传播的转换都是unicode编码转换,其中很多字不在字库内,举例:瑛(ying)无法识别,存在很多问题,本代码直接字库转换,且公开文本,没有找到的字还可以添加到字库。...
pinyin4J java拼音转换工具 java汉字转换拼音工具
两种中文转拼音方法,一种支持简体转拼音,另一种支持简体与繁体转拼音,代码内有案例。