- 浏览: 138766 次
- 性别:
- 来自: 南京
文章分类
- 全部博客 (129)
- framework (18)
- Java (25)
- web2.0 (7)
- Oracle (23)
- 框架师 (20)
- design pattern (5)
- j2ee (6)
- 日常问题收集 (51)
- linux (12)
- Oralce优化 (4)
- life (3)
- sqlplus (1)
- sql (2)
- C# (4)
- mysql (9)
- 拿来主义 (12)
- 标签 (0)
- ThinkPHP (1)
- python (1)
- mybatis (2)
- html5 (1)
- jquery (2)
- hadoop (3)
- git (1)
- struts2 (1)
- shiro (1)
- struts (1)
最新评论
-
xiao88xian:
...
jQuery常用经典技巧
今天开发了自己的第二个开源工具 jar包
名称:pinyin4j.jar
功能: 将汉语拼音转换为汉语拼音
算法:
从对应的资源文件中(文件中包含了常用汉字的unicode编码-拼音)
文件格式如下:
3007 (ling2)
4E00 (yi1)
4E01 (ding1,zheng1)
4E02 (kao3)
4E03 (qi1)
4E04 (shang4,shang3)
.
.
.
用数据流的方式读取 然后将unicode码以key,pinyin为value存入一个HashMap中
接口:
传入:汉语拼音的字符串
返回:拼音的字符串数组(即每个汉语拼音对应相应的拼音)
源码:
然后导出为jar包
测试一下:
新建一个java工程,然后将刚做好的jar包导入的工程中
新建一个test类
测试效果:
da4,dai4
dan4
shi4
guan1
jian4
de5,di4,di2
shi4
gai4
duo1
shao3,shao4
le5,liao3,liao4
gong1
ji1
duo1
shao3,shao4
遇到的问题,在导出jar包的时候出了很多错误
主要问题出在: 如何读取jar包中的资源文件 这个可以参考我收藏的一篇文章
名称:pinyin4j.jar
功能: 将汉语拼音转换为汉语拼音
算法:
从对应的资源文件中(文件中包含了常用汉字的unicode编码-拼音)
文件格式如下:
3007 (ling2)
4E00 (yi1)
4E01 (ding1,zheng1)
4E02 (kao3)
4E03 (qi1)
4E04 (shang4,shang3)
.
.
.
用数据流的方式读取 然后将unicode码以key,pinyin为value存入一个HashMap中
接口:
传入:汉语拼音的字符串
返回:拼音的字符串数组(即每个汉语拼音对应相应的拼音)
源码:
package com.anduo.pinyin4j; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.HashMap; public class PinYinHelper { private static HashMap<String, String> hashMap = new HashMap<String, String>(); /** * 将unicode-to-hanyu-pinyin.txt文件 以unicode为key pinyin为value 加到hashmap中 */ private static void myReader() { InputStream is = PinYinHelper.class.getClass().getResourceAsStream( "/resource/unicode_to_hanyu_pinyin.txt"); BufferedReader breader = new BufferedReader(new InputStreamReader(is)); String s; String unicode; String pinyin; try { while ((s = breader.readLine()) != null) { // 提取文件流每行中的unicode码以及 pinyin字符串 unicode = s.substring(0, 4); pinyin = s.substring(6, s.length() - 1); hashMap.put(unicode.toLowerCase(), pinyin); } } catch (IOException e) { e.printStackTrace(); } } /** * 将汉语转换为汉语拼音 * * @param value * @return pinyin[] */ public static String[] toHanYuPinYin(String value) { myReader(); String[] result = new String[value.length()]; String unicode; String pinyin; for (int i = 0; i < value.length(); i++) { Character c = value.charAt(i); unicode = Integer.toHexString(c);// 得到汉字的unicode编码 pinyin = hashMap.get(unicode);// 从hashMap中找到汉子的拼音 result[i] = pinyin; } return result; } }
然后导出为jar包
测试一下:
新建一个java工程,然后将刚做好的jar包导入的工程中
新建一个test类
package com.anduo; import com.anduo.pinyin4j.PinYinHelper; public class test { public static void main(String[] args) { String s[] = PinYinHelper.toHanYuPinYin("大但是关键的是概多少了攻击多少"); for (String string : s) { System.out.println(string); } } }
测试效果:
da4,dai4
dan4
shi4
guan1
jian4
de5,di4,di2
shi4
gai4
duo1
shao3,shao4
le5,liao3,liao4
gong1
ji1
duo1
shao3,shao4
遇到的问题,在导出jar包的时候出了很多错误
主要问题出在: 如何读取jar包中的资源文件 这个可以参考我收藏的一篇文章
- jianfan4j.jar (94.8 KB)
- 下载次数: 21
发表评论
-
使用OSCache实现页面的缓存,优化性能
2013-07-10 14:21 1013使用OSCache实现页面的缓存,优化性能 OSC ... -
BigDecimal不整除的一个异常java.lang.ArithmeticException: Non-terminating decimal expansi
2013-03-26 10:34 1521金额的数据类型是BigDec ... -
解决subclipse报错:svn: Can't open file 'D:\project\Xxx.java.svn-base': 系统找不到指定的文件
2013-03-23 16:49 1909环境为:XP, eclipse, subclipse。 我想 ... -
hibernate4+spring3.1整合常见问题解决方法
2013-03-21 19:21 769由于目前网上很少有关于hibernate4+spring3. ... -
JAVA String.format 方法使用介绍(生成序列号的时候很有用哦)
2013-03-21 10:39 1217JAVA String.format 方法使 ... -
Ant-Ivy使用
2013-02-21 12:27 1024转至:http://blog.csdn.net/leon70 ... -
Java时间处理
2013-01-17 17:33 7641.获得当前系统时间 首先System ... -
no jacob in java.library.path错误的解决
2013-01-15 11:25 904一般把jacob.dll(不同版本的jacob的dll文件名 ... -
java合并几个图片
2013-01-08 15:39 832package com.anduo.web; im ... -
JDK 1.6 API 中英文版 在线版、下载地址
2013-01-05 10:38 1330JDK 1.6 API(全) * HTML 格式(在线英 ... -
JAVA String.format方法使用介绍
2013-01-04 12:28 792转至:http://soft.chinab ... -
java中byte数组与int,long,short间的转换
2012-12-26 14:07 922开发问题收集 package com.util; ... -
通过知道的class文件得到该文件所在的jar包
2012-09-18 14:23 718String path = XXX.class.getP ... -
利用java内置库的HashMap统计字符串中单词出现的个数问题
2011-05-14 20:16 657没什么好说的,我就直接把代码放上面吧: package co ... -
classpath、path、JAVA_HOME的作用
2011-11-05 14:13 910CLASSPATH是什么? ... -
JAVA基础巩固加强 enhance day1
2011-11-07 18:52 879最近忙着找工作,可是总是到最后面试完了就没信儿了。哎,你说找个 ... -
JAVA基础巩固加强 enhance day1反射 reflect
2011-11-07 20:58 815以前一直只知道有reflect ... -
如何用jdbc连接数据库 java连接数据库的五步
2011-06-09 22:18 1421用JDBC连接数据库 本文用sqlserver2000 ... -
Java 完全面向对象的贪吃蛇游戏
2011-05-09 10:08 1012JavaSE的项目:贪吃蛇( ... -
利用java内置库的HashMap统计字符串中单词出现的个数问题
2011-05-14 20:16 2491没什么好说的,我就直接把代码放上面吧: package c ...
相关推荐
Pinyin4j的基本用法 1. 简单介绍 有时候,需要将汉字编程对应的拼音,以方便数据的处理。比如在Android手机应用的开发上,要查询联系人的姓名,通常都是用拼音进行查询的。比如要查询“曹孟德”,就可以输入“cmd”...
pinyin4j 开发包和例子
pinyin4j开发jar包
Pinyin4j是一个功能强悍的汉语拼音工具包,是sourceforge.net上的一个开源项目。 主要的功能有: - 支持同一汉字有多个发音 - 支持拼音的格式化输出,比如第几声之类的 - 支持简体中文、繁体中文转换为拼音
该工具包用于将汉字转拼音jar文件,在开发根据汉字排序的时候很有用,还有类似通信录那样根据收个汉字拼音的首字母进行分组很有帮助。
在开发过程中,我们往往会遇到将汉字转化为简码的形式,即汉字首字母大写的格式。该jar包就为汉字转首字母大写提供了方法。
该工具包用于将汉字转拼音jar文件,在开发根据汉字排序的时候很有用,还有类似通信录那样根据收个汉字拼音的首字母进行分组很有帮助。
强大的Pinyin4j.jar包轻松帮你实现汉字转换为拼音的功能,可以打造出类似钉钉中取昵称后两位汉字作为昵称的UI效果,满足你开发需求,如果你通过上面的英文官网,没有找到下载路径,请下载该资源,内含有源码解析文档...
elasticsearch-5.2.2客户端JAVA开发需要的69个jar包。当然也可以通过maven自动下载。activation-1.1.jar,bcpkix-jdk15on-1.55.jar,bcprov-jdk15on-1.55.jar,commons-codec-1.10.jar,commons-logging-1.2.jar,...
如果觉得对你有帮助,可以给个关注,beanutils, c3p0, dbcp连接池,fileupload,hessian-4.0.33, hibernate, jackson, log4j, mybatis, net.sf.json, oscache, pinyin4j, poi, spring, struts,验证码,jstl-1.2.jar, ...
强大的Pinyin4j.jar包轻松帮你实现汉字转换为拼音的功能,可以打造出类似钉钉中取昵称后两位汉字作为昵称的UI效果,满足你开发需求,如果你通过上面的英文官网,没有找到下载路径,请下载该资源,内含有源码解析文档...
BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...
Android通讯录模糊搜索 ,模糊搜索通讯录联系人。 排序按照A-Z顺序进行排序。基于pinyin4j。 使用请导入对应jar包;
BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...
1.首先下载pinyin4j-2.5.0.jar,拷贝到工程的lib目录里 官网下载地址:https://sourceforge.net/projects/pinyin4j/ 或者点击此处本站下载。 2.创建工具类:PinyinUtils /** * 拼音转换工具 * * @描述 TODO * @...
BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...
BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...
BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...