- 浏览: 854012 次
文章分类
- 全部博客 (365)
- java (124)
- spring mvc (21)
- spring (22)
- struts2 (6)
- jquery (27)
- javascript (24)
- mybatis/ibatis (8)
- hibernate (7)
- compass (11)
- lucene (26)
- flex (0)
- actionscript (0)
- webservice (8)
- rabbitMQ/Socket (15)
- jsp/freemaker (5)
- 数据库 (27)
- 应用服务器 (21)
- Hadoop (1)
- PowerDesigner (3)
- EJB (0)
- JPA (0)
- PHP (2)
- C# (0)
- .NET (0)
- html (2)
- xml (5)
- android (7)
- flume (1)
- zookeeper (0)
- 证书加密 (2)
- maven (1)
- redis (2)
- cas (11)
最新评论
-
zuxianghuang:
通过pom上传报错 Artifact upload faile ...
nexus上传了jar包.通过maven引用当前jar,不能取得jar的依赖 -
流年末年:
百度网盘的挂了吧???
SSO单点登录系列3:cas-server端配置认证方式实践(数据源+自定义java类认证) -
953434367:
UfgovDBUtil 是什么类
Java发HTTP POST请求(内容为xml格式) -
smilease:
帮大忙了,非常感谢
freemaker自动生成源代码 -
syd505:
十分感谢作者无私的分享,仔细阅读后很多地方得以解惑。
Nginx 反向代理、负载均衡、页面缓存、URL重写及读写分离详解
今天在无意中发现了pinyin4j这个强大的工具,它能帮助我们完成将汉字转换成拼音的工作,这给我们的开发带来了巨大的便利,意识到这一点,我果断的学习了。在开始记录我的学习成果前,我必须先感谢pinyin4j的作者Li Min
(作者详细信息不详),感谢你为开发者提供了这个工具。
先来看看pinyin4j有什么功能吧。
Pinyin4j是sourceforge.net上的一个开源项目,支持同一汉字有多个发音,还支持拼音的格式化输出,比如第几声之类的,同时支持简体中文、繁体中文转换为拼音。下面是其官方网址,其中提供了下载:http://pinyin4j.sourceforge.net/
下面就是我的学习成果演示了,可能存在诸多错误,希望大家能不吝指正,帮助我进步。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
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;
import net.sourceforge.pinyin4j.*;
public class Chinese2Pinyin {
/**
* @param args
* @throws BadHanyuPinyinOutputFormatCombination
*/ public static void main(String[] args)
throws BadHanyuPinyinOutputFormatCombination {
// TODO Auto-generated method stub
Chinese chinese = new Chinese();
String sentence = "自己选择的路,跪着也要走完" ;
char word = '中' ;
// 不使用格式化
String pinyins[] = chinese.getSingleWord(word);
System.out.println( "不使用格式化的单字测试:" );
for (String pinyin : pinyins) {
System.out.println(pinyin);
}
System.out.println( "不使用格式化的语句测试:" );
String result = chinese.getSentence(sentence);
System.out.println(result);
// 使用格式化
HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
format.setCaseType(HanyuPinyinCaseType.LOWERCASE);
format.setToneType(HanyuPinyinToneType.WITH_TONE_MARK);
format.setVCharType(HanyuPinyinVCharType.WITH_U_UNICODE);
System.out.println( "使用格式化的单字测试:" );
String pinyins2[] = chinese.getSingleWord(word, format);
for (String pinyin : pinyins2) {
System.out.println(pinyin);
}
format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
System.out.println( "使用格式化的语句测试:" );
String result2 = chinese.getSentence(sentence, format);
System.out.println(result2);
}
} class Chinese {
public Chinese() {
}
// 测试单字,不使用格式化方式
public String[] getSingleWord( char word) {
return PinyinHelper.toHanyuPinyinStringArray(word);
}
// 测试单字,使用格式化方式
public String[] getSingleWord( char word, HanyuPinyinOutputFormat format)
throws BadHanyuPinyinOutputFormatCombination {
return PinyinHelper.toHanyuPinyinStringArray(word, format);
}
// 测试语句,不使用格式方式
public String getSentence(String sentence) {
StringBuilder sb = new StringBuilder();
for ( int i = 0 , len = sentence.length(); i < len; i++) {
char ch = sentence.charAt(i);
String[] temp = getSingleWord(ch);
if (temp == null ) {
sb.append(ch + ' ' );
} else {
sb.append(temp[ 0 ] + ' ' );
}
}
return sb.toString();
}
// 测试语句,使用格式化方式
public String getSentence(String sentence, HanyuPinyinOutputFormat format)
throws BadHanyuPinyinOutputFormatCombination {
StringBuilder sb = new StringBuilder();
for ( int i = 0 , len = sentence.length(); i < len; i++) {
char ch = sentence.charAt(i);
String[] temp = getSingleWord(ch, format);
if (temp == null ) {
sb.append(ch + ' ' );
} else {
sb.append(temp[ 0 ] + ' ' );
}
}
return sb.toString();
}
} |
测试结果如下:
OK,上面是我做的简单的测试程序,在做程序的时候我想到一个问题,如何来判断文字在语句中的读音该是怎样的呢?我认为这是这个工具需要再添加的功能,如果有了这个功能,那么我们就可以很方便的将汉语文章用拼音注解,这也就为小孩子提供了更多的阅读物了。
package com.bq.action; 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; public class PinyinMain { public static void main(String[] args) { System.out.println(stringToPinYin("大修包")); } public static String charToPinYin(char c) { HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat(); format.setCaseType(HanyuPinyinCaseType.LOWERCASE); // 设置大小写 format.setToneType(HanyuPinyinToneType.WITHOUT_TONE); // 不输出音调 format.setVCharType(HanyuPinyinVCharType.WITH_V); // 拼音中的u输出为v 例如lv try { // 返回汉字的拼音,如果为多音字则返回所有读音 String[] result = PinyinHelper.toHanyuPinyinStringArray(c, format); if (result == null) { return null; // 如果传入的不是汉字,例如A,则返回数组为null } else { return result[0]; // 返回汉字的第一个读音 } } catch (BadHanyuPinyinOutputFormatCombination e) { e.printStackTrace(); return null; } } public static String stringToPinYin(String str) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < str.length(); i++) { char c = str.charAt(i); if (charToPinYin(c) == null) { sb.append(c); } else { sb.append(charToPinYin(c)); } } return sb.toString(); } }
- pinyin4j-2.5.0.jar (184.5 KB)
- 下载次数: 2
发表评论
-
eclispe 实用插件大全
2016-03-31 10:17 836在一个项目的完整的生命周期中,其维护费用,往往是其开发费用的 ... -
单点登录 SSO Session
2016-03-14 16:56 4052单点登录在现在的 ... -
通用权限管理设计 之 数据库结构设计
2016-01-26 13:22 2952通用权限管理设计 之 ... -
分享一个基于ligerui的系统应用案例ligerRM V2(权限管理系统)(提供下载)
2016-01-26 13:22 1493分享一个基于ligerui的系统应用案例ligerRM V2 ... -
通用权限管理设计 之 数据权限
2016-01-26 13:20 740通用权限管理设计 之 数据权限 阅读目录 前 ... -
使用RSA进行信息加密解密的WebService示例
2015-12-28 10:30 876按:以下文字涉及RS ... -
防止网站恶意刷新
2015-10-22 10:55 705import java.io.IOExcept ... -
单点登录
2015-10-19 14:24 763Cas自定义登录页面Ajax实现 博客分类: ... -
session如何在http和https之间同步
2015-09-14 09:25 2254首先说下 http>https>http ... -
基于 Quartz 开发企业级任务调度应用
2015-08-17 11:17 839Quartz 是 OpenSy ... -
Java加密技术(十二)——*.PFX(*.p12)&个人信息交换文件
2015-08-17 11:17 878今天来点实际工 ... -
Java加密技术(十)——单向认证
2015-08-13 10:13 679在Java 加密技术(九)中,我们使 ... -
Java加密技术(九)——初探SSL
2015-08-13 10:12 885在Java加密技术(八)中,我们模拟 ... -
Java加密技术(八)——数字证书
2015-08-13 10:12 891本篇的主要内容为Java证书体系的实 ... -
Java加密技术(七)——非对称加密算法最高级ECC
2015-08-13 10:12 973ECC ECC-Elliptic Curv ... -
Java加密技术(六)——数字签名算法DSA
2015-08-13 10:11 1060接下来我们介绍DSA数字签名,非对称 ... -
Java加密技术(五)——非对称加密算法的由来DH
2015-08-12 16:13 869接下来我们 ... -
Java加密技术(四)——非对称加密算法RSA
2015-08-12 16:11 1094接下来我们介绍典型的非对称加密算法—— ... -
Java加密技术(三)——PBE算法
2015-08-12 16:10 958除了DES,我们还知道有DESede( ... -
Java加密技术(二)——对称加密算法DES&AES
2015-08-12 16:09 719接下来我们介绍对称加密算法,最常用的莫 ...
相关推荐
`pinyin4j`库的核心功能是将汉字转换为汉语拼音。这个过程涉及到多个方面,包括识别多音字、处理声调以及提供不同的拼音输出格式。例如,对于汉字"好",`pinyin4j`可以输出"haο"(无声调形式)或"hǎo"(带声调形式...
《中文转拼音工具类——pinyin4j-2.5.0.jar 在处理地址与人名中的应用》 在处理中文数据时,有时我们需要将汉字转换为拼音,以便进行搜索、排序或者国际化处理。这时,一个高效且准确的中文转拼音工具显得尤为重要...
总的来说,pinyin4j-2.5.0.jar是一个强大且易用的Java库,它极大地简化了汉字与拼音之间的转换过程,是处理中文字符问题时不可或缺的工具。通过合理利用这个库,开发者可以更高效地实现各种基于拼音的业务逻辑,提升...
对于Java开发者来说,pinyin4j是一个不可或缺的工具包,它专门用于将汉字转换为拼音,从而解决了中文数据处理中的诸多问题。pinyin4j-2.5.0.zip这个压缩包便是这一强大工具的载体,包含了一切你需要的功能,以适应...
为此,Elasticsearch提供了多种分词器,其中elasticsearch-analysis-pinyin-7.4.0就是专门针对中文处理的拼音分词器,它将汉字转换为拼音,以提高中文搜索的准确性和便利性。 这个插件的核心功能在于将中文字符转化...
这个压缩包包含了一个预封装好的Java类,专门用于实现汉字到拼音的转换,并且依赖于pinyin4j库,版本号为2.5.0。 pinyin4j是一个开源的Java库,由Barry de Graaff 创建,主要用于处理汉字的拼音转换。它能够将汉字...
"pinyin4j-2.5.0.jar"就是这样一款高效且易用的工具,它专为Java和Kotlin设计,提供了强大的汉字转拼音功能。 pinyin4j是一款开源的Java库,由Barry De Zwart开发,其主要功能是将汉字转换为汉语拼音。这个库不仅...
《使用pinyin4j库进行中文到拼音转换的详解》 在处理中文字符时,有时我们...通过简单调用其提供的API,开发者可以方便地处理汉字、词语乃至整个句子的拼音转换,无论是简体中文还是繁体中文,pinyin4j都能游刃有余。
《pinyin4j-2.5.0.jar与PinyinUtils.java:Java汉字转拼音的高效工具》 在Java开发中,处理汉字转拼音的需求时常出现,例如在搜索引擎优化、关键词提取、排序等方面。这时,一个高效且易用的库就显得尤为重要。...
《pinyin4j-2.5.0.jar:中文转换拼音与获取首字母的利器》 在处理中文数据时,有时我们需要将汉字转化为拼音,以便进行关键词检索、数据分析或者构建搜索引擎。这时,一个强大的工具库就能派上用场,那就是pinyin4j...
3. **拼音分词**:对于含有多个汉字的字符串,`pinyin4j`可以将其拆分为一个个单独的汉字,并分别转换为拼音。这对于进行基于拼音的关键词提取或搜索很有帮助。 4. **首字母提取**:如果你只需要汉字的首字母,`...
在JavaScript(JS)中,将汉字转换为拼音是一项常见的需求,尤其在文本处理、搜索优化或者国际化应用中。本实例将探讨如何利用JS实现这一功能,主要涉及以下几个知识点: 1. **Unicode 和 Pinyin** 汉字在计算机中...
总的来说,`pinyin4j-2.5.0.jar`是一个强大而易用的Java拼音工具,对于需要处理中文字符的应用来说,它是一个不可或缺的助手。通过理解和熟练运用这个库,开发者可以更高效地实现汉字与拼音之间的转换,提高程序的...
例如,在搜索引擎中,用户输入的关键词可能包含汉字,通过pinyin4j转换成拼音后,可以方便地与索引中的拼音数据进行匹配。 总结起来,pinyin4j-jar是一个强大的汉字转拼音工具,它提供了灵活的拼音输出格式设置,能...
标题中的“拼音分词 Pinyin4j+pinyinAnalyzer+lucene-analyzers”指的是这个压缩包包含的三个核心组件,它们都是在处理中文文本时非常重要的工具。Pinyin4j是一个Java库,主要用于将汉字转换为拼音,这对于进行基于...
pinyin4J java拼音转换工具 java汉字转换拼音工具
标题"pinyin支持汉字转换拼音,汉字转换拼音缩写"表明这是一个关于汉字到拼音转换的工具或库,同时它还具备将汉字转换为拼音缩写的功能。 汉字转换拼音的原理通常基于汉语拼音方案,这是中国国家标准,规定了每个...
Pinyin4j是一个功能强悍的汉语拼音工具包,是sourceforge.net上的一个开源项目。 主要的功能有: - 支持同一汉字有多个发音 - 支持拼音的格式化输出,比如第几声之类的 - 支持简体中文、繁体中文转换为拼音
pinyin4j是一个专门用于Java平台的中文字符转拼音的开源库,它的版本为2.5.1,是开发者处理中文字符转换为拼音的重要工具。该库由net.sourceforge.pinyin4j包提供,包含了丰富的类和方法,能够帮助开发者方便地获取...