文档章节

pinyin4j

脑丨残
 脑丨残
发布于 2014/01/04 18:30
字数 590
阅读 252
收藏 11
点赞 0
评论 0

    

pinyin4j是一个支持将简体和繁体中文转换到成拼音的Java开源类库,作者是Li Min (xmlerlimin@gmail.com )。以下是一些具体的介绍和使用方式。

 

  1. pinyin4j的官方下载地址http://sourceforge.net/projects/pinyin4j/files/,目前最新的版本是2.5.0

  

 

  1. 下载解压后的目录结构及说明如下

(1)     doc : pinyin4japi文档

(2)     lib : pinyin4jjar

(3)     src : pinyin4j的源代码

(4)     CHANGELOG.txt : pinyin4j的版本更新日志

(5)     COPYING.txt : LICENSE说明

(6)     README.txt : pinyin4j的概要介绍

 

 

  1. 运行GUI demo

命令行执行cd ${pinyin-install-dir}/lib,进入到pinyin4j-2.5.0.jar所在的目录,敲入java -jar pinyin4j-2.5.0.jar执行,GUI界面如下:

  

     

 

上图是输入汉字“中”,执行Convert to Pinyin后的截图。Format后有三个下拉框,第一个下拉框有三个选项,用来控制生成的拼音声调的显示方式,三个方式及其效果如下(以汉字“中”,选中Formatted hanyu Pinyin选项卡测试)

WITH_TONE_NUMBER(以数字代替声调) :  zhong1  zhong4

WITHOUT_TONE (无声调) :                           zhong   zhong

WITH_TONE_MARK (有声调) :                      zhōng  zhòng

第二个下拉框是碰到unicode 的ü  u时的显示方式,共有三个方式, 以下是以声调为WITH_TONE_NUMBER方式显示汉字“吕”示例:

WITH_U_AND_COLON : lu:3

WITH_V :            lv3

WITH_U_UNICODE :    lü3

第三个下拉框是控制生成的拼音是以大写方式显示还是以小写方式显示,以汉字示例如下:

LOWERCASE guó

UPPERCASE GUÓ

上图的汉字转化成拼音后,有六种显示方式,这是因为pinyin4j支持将汉字转化成六种拼音表示法。其对应关系是:汉语拼音-Hanyu Pinyin,通用拼音-Tongyong Pinyin, 威妥玛拼音(威玛拼法)-Wade-Giles  Pinyin, 注音符号第二式-MPSII Pinyin, 耶鲁拼法-Yale Pinyin和国语罗马字-Gwoyeu Romatzyh 

 

  1. 字符串转化成拼音Java代码示例

 

[java:nogutter] view plaincopyprint?

package testcase;  
  
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 PinYinUtil {  
      
    public static String getPinYin(String inputString) {  
          
        HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();  
        format.setCaseType(HanyuPinyinCaseType.LOWERCASE);  
        format.setToneType(HanyuPinyinToneType.WITH_TONE_MARK);  
        format.setVCharType(HanyuPinyinVCharType.WITH_U_UNICODE);  
  
        char[] input = inputString.trim().toCharArray();  
        StringBuffer output = new StringBuffer("");  
  
        try {  
            for (int i = 0; i < input.length; i++) {  
                if (Character.toString(input[i]).matches("[//u4E00-//u9FA5]+")) {  
                    String[] temp = PinyinHelper.toHanyuPinyinStringArray(input[i], format);  
                    output.append(temp[0]);  
                    output.append(" ");  
                } else  
                    output.append(Character.toString(input[i]));  
            }  
        } catch (BadHanyuPinyinOutputFormatCombination e) {  
            e.printStackTrace();  
        }  
        return output.toString();  
    }  
      
    public static void main(String[] args) {  
        String chs = "我是中国人! I'm Chinese!";  
        System.out.println(chs);  
        System.out.println(getPinYin(chs));  
    }  
      
}
    运行结果:我是中国人! I'm Chinese!
               wŏ sh&igrave; zhōng gu&oacute; r&eacute;n ! I'm Chinese!

本文转载自:http://blog.csdn.net/hfhwfw/article/details/6030816

共有 人打赏支持
脑丨残
粉丝 8
博文 59
码字总数 23267
作品 0
西安
Error:Execution failed for task ':app:transformRes

今天用上Android Studio2.0正式版,编译项目后出现如下错误:[plain] view plain copy 在CODE上查看代码片派生到我的代码片Error:Execution failed for task ':app:transformResourcesWithM...

丁佳辉 ⋅ 2016/06/22 ⋅ 0

将jar包导入成mvn项目

将pinyin4j-2.5.0.jar导入成mvn项目,具体安装方法如下在命令行中执行如下命令(前提系统环境变量中有MAVEN): mvn install:install-file -DgroupId=com.pinyin4j -DartifactId=pinyin4J -D...

alex_deng ⋅ 2012/04/11 ⋅ 0

MAVEN向本地仓库导入jar包

教程一: 对于官网没有的jar包,maven向本地仓库导入jar包用如下命令 Java代码 mvn install:install-file -DgroupId=包名 -DartifactId=项目名 -Dversion=版本号 -Dpackaging=jar -Dfile=jar...

jiyayun ⋅ 2013/07/29 ⋅ 0

ajax提交编码问题

我用jquery ajax传给action一个字符串 希望用pinyin4j处理。pinyin4j貌似只能处理gbk,gb2312。但我的action中只接到了utf-8的。求解 1.怎么才能让action接到gbk编码的字符串 2.或者怎么将接...

Zawinski ⋅ 2013/09/27 ⋅ 8

Pinyin4j 的基本用法

1. 简单介绍 有时候,需要将汉字编程对应的拼音,以方便数据的处理。比如在Android手机应用 的开发上,要查询联系人的姓名,通常都是用拼音进行查询的。比如要查询“曹孟德”,就可以输入“c...

鉴客 ⋅ 2011/09/11 ⋅ 8

搜素时自动补全功能的实现

前端:angularjs <input type="text" class="#" ng-blur="#" ng-model="params.r" typeahead="r as r.name for r in filter($viewValue)"/> filter($viewValue)是数据源,这个可以异步获取 ......

wjk_snail ⋅ 2015/07/24 ⋅ 0

包含多音字的汉字字符串如何通过pinyin4J转换成拼音串

看了下pinyin4j实现了单个汉字转换成拼音的功能,如果我一次性输入多个包含多音字的汉字,如"大绿胖姥”,通过pinyin4J循环处理每个汉字字符,可得(da dai) (lv lu) (pang pan) (lao mu),那...

不懂就要问啊 ⋅ 2015/04/27 ⋅ 3

java二维数组全排列问题

使用pinyin4j实现自动完成的功能,汉字中有好多多音字,所以用的是二维数组去接pinyin4j转出来的音调。然后对该二维数组进行全排列,获取 到所有拼接好的拼音字符串并返回。全排列时使用的是...

佐岸 ⋅ 2012/08/19 ⋅ 2

Java字符串按照汉语拼音排序

Java中字符编码是Unicode,在给汉字字符串排序时,并不是我们期望的按照汉语拼音排序。 例如,语句System.out.println('龙'>'最')的结果是true,尽管'l'<'z'。 在网上搜了按照汉语拼音排序的...

双子座 ⋅ 2011/08/16 ⋅ 0

adt升级后pinyin4j里的方法PinyinHelper.toHanyuPinyinStringArray()返回null

这次把adt从21升级到22以后,原来可以用的pinyin4j包居然出错了。 问题描述如题所示。出错的代码为 String[] temp = PinyinHelper.toHanyuPinyinStringArray( input[i], format); input[i]是...

肥羊在深圳 ⋅ 2013/06/05 ⋅ 3

没有更多内容

加载失败,请刷新页面

加载更多

下一页

linux 安装docker

通过以下命令下载安装docker wget -qO- https://get.docker.com | sh 执行以上命令后输出以下内容说明安装成功,注意红框中的内容,docker安装成功后默认只有root能使用,红框中给出的提示是...

haoyuehong ⋅ 19分钟前 ⋅ 0

482. License Key Formatting - LeetCode

Question 482. License Key Formatting Solution 思路:字符串转化为char数组,从后遍历,如果是大写字母就转化为小写字母,如果是-就忽略,如果遍历了k个字符(排除-)就追加一个-。 Java实现...

yysue ⋅ 38分钟前 ⋅ 0

聊聊spring cloud gateway的LoadBalancerClientFilter

序 本文主要研究一下spring cloud gateway的LoadBalancerClientFilter GatewayLoadBalancerClientAutoConfiguration spring-cloud-gateway-core-2.0.0.RELEASE-sources.jar!/org/springfram......

go4it ⋅ 今天 ⋅ 0

详解:Nginx反代实现Kibana登录认证功能

Kibana 5.5 版后,已不支持认证功能,也就是说,直接打开页面就能管理,想想都不安全,不过官方提供了 X-Pack 认证,但有时间限制。毕竟X-Pack是商业版。 下面我将操作如何使用Nginx反向代理...

问题终结者 ⋅ 今天 ⋅ 0

002、nginx配置虚拟主机

一、nginx配置虚拟主机可分为三种方式,分别为: 1、基于域名的虚拟主机,通过域名来区分虚拟主机——应用:外部网站 2、基于端口的虚拟主机,通过端口来区分虚拟主机——应用:公司内部网站...

北岩 ⋅ 今天 ⋅ 0

shell脚本之死循环写法

最近在学习写shell脚本,在练习if while等流程控制时,突然它们的死循环写法是怎么样的?经过百度与亲测记录如下: for死循环 #! /bin/bashfor ((;;));do date sleep 1d...

hensemlee ⋅ 今天 ⋅ 0

苹果的ARKit2.0有多可怕,看了就知道

序言 ARKit主要由三部分组成: 跟踪(Tracking) 跟踪是ARKit的核心组件之一,其提供了设备在物理世界中的位置与方向信息,并对物体进行跟踪,如人脸。 2.场景理解(Scene Understanding) 场...

_小迷糊 ⋅ 今天 ⋅ 0

5.1 vim介绍 5.2 vim移动光标 5.3 ,5.4vim一般模式下移动光标,复制粘贴

vim命令 vim是vi的一个升级版;vim可以显示文字的颜色 安装vim这一个包vim-enhanced 如果不知道安装包,可以使用 命令下面命令来查看vim命令是那个包安装的。 [root@linux-128 ~]# yum prov...

Linux_老吴 ⋅ 今天 ⋅ 0

vim一般模式

vim 是什么 vim是什么 ? 在之前接触Linux,编辑网卡配置文件的时候我们用过了vi ,vim简单说就是vi的升级版,它跟vi一样是Linux系统中的一个文本编辑工具。 如果系统中没有vim ,需要安装一...

李超小牛子 ⋅ 今天 ⋅ 0

docker实战

构建企业级Docker虚拟化平台实战 重点剖析虚拟化和云计算概念; 分析Docker虚拟化的概念和原理; 从0开始实战Docker虚拟化平台; 基于Docker构建Nginx WEB服务器和CentOS虚拟机; 基于开源监...

寰宇01 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部