一般用法

pinyin4j的使用很方便,一般转换只需要使用PinyinHelper类的静态工具方法即可:

String[] pinyin = PinyinHelper.toHanyuPinyinStringArray(‘刘’);

//该类还有其他的拼音转换形式,但是基本上用不到,就不介绍了
返回的数组即是该字符的拼音,如上例就是pinyin[0]=liu2,后面的数字代表声调,声调为5表示轻读,无声调。之所谓返回数组,是因为被判定的汉字有可能有多个读音。如果输入的参数不是汉字,则返回null。

拼音格式化
如果对于拼音转换后的结果有一些特定的格式要求目前pinyin4j支持:

  1. 声调格式化。例如:“刘”字的格式化后为“liu2”或“liu”或“liú”
  2. 对特殊拼音ü的的显示格式。例如“u:”或“v”或“ü”
  3. 大小写的转换。例如:“liu2”或“LIU2”
    以上这些格式可以混合使用,下面就来介绍具体的使用方法,首先需要创建格式化对HanyuPinyinOutputFormat,例如:
    HanyuPinyinOutputFormat outputFormat = new HanyuPinyinOutputFormat();

然后分别调用outputFormat的set方法设置上述一些格式要求:
设置声调格式:

outputFormat.setToneType(HanyuPinyinToneType);

方法参数HanyuPinyinToneType有以下常量对象:
HanyuPinyinToneType.WITH_TONE_NUMBER 用数字表示声调,例如:liu2
HanyuPinyinToneType.WITHOUT_TONE 无声调表示,例如:liu
HanyuPinyinToneType.WITH_TONE_MARK 用声调符号表示,例如:liú
设置特殊拼音ü的显示格式:

outputFormat.setVCharType(HanyuPinyinVCharType);

方法参数HanyuPinyinVCharType有以下常量对象:
HanyuPinyinVCharType.WITH_U_AND_COLON 以U和一个冒号表示该拼音,例如:lu:
HanyuPinyinVCharType.WITH_V 以V表示该字符,例如:lv
HanyuPinyinVCharType.WITH_U_UNICODE 以ü表示
设置大小写格式

outputFormat.setCaseType(HanyuPinyinCaseType);
HanyuPinyinCaseType.LOWERCASE    // 转换后以全小写方式输出
HanyuPinyinCaseType.UPPERCASE     //转换后以全大写方式输出

设置好格式对象后还是利用上述的工具类方法进行拼音转换,只不过需要将格式化对象当成方法参数传入转换方法,告知要转换的格式要求:

String[] pinyin = PinyinHelper.toHanyuPinyinStringArray(‘刘’, outputFormat);

但该方法会有异常抛出,注意处理。

示例

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 Test {public static void main(String[] args) {HanyuPinyinOutputFormat outputFormat = new HanyuPinyinOutputFormat();outputFormat.setToneType(HanyuPinyinToneType.WITH_TONE_MARK);outputFormat.setVCharType(HanyuPinyinVCharType.WITH_U_UNICODE);outputFormat.setCaseType(HanyuPinyinCaseType.UPPERCASE);try {System.out.println(concatPinyinStringArray(PinyinHelper.toHanyuPinyinStringArray('刘',outputFormat)));} catch (BadHanyuPinyinOutputFormatCombination e) {// TODO Auto-generated catch blocke.printStackTrace();}}private static String concatPinyinStringArray(String[] pinyinArray){StringBuffer pinyinStrBuf = new StringBuffer();if ((null != pinyinArray) && (pinyinArray.length > 0)){for (int i = 0; i < pinyinArray.length; i++){pinyinStrBuf.append(pinyinArray[i]);pinyinStrBuf.append(System.getProperty("line.separator"));}}String outputString = pinyinStrBuf.toString();return outputString;}
}

输出结果为:LIÚ

其他

  • List item PinyinHelper还有其他的静态方法,但示例和讲解中使用的方法是常见的拼音格式,因此其他静态方法我没有调研其含义。
  • 貌似支持生僻字,我试过很怪异的字,都可以将其读音拼写出来,因此这个工具包还是很强的。

Pinyin4j使用介绍相关推荐

  1. Pinyin4j.jar介绍中文转拼音

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

  2. pinyin4j简单介绍使用

    简介: pinyin4j是一个开源的流行java库(官网地址:http://pinyin4j.sourceforge.net/,在线文档:http://pinyin4j.sourceforge.net ...

  3. 实战项目:文件搜索软件Search_Everything

    目录 项目背景 项目介绍 技术介绍 项目流程图 包与类的功能描述 项目中遇到问题与解决: 项目未优化的地方 项目效果演示 项目源码地址:Search_Everything: 仿照everything的 ...

  4. 汉字转拼音,pinyin4j使用详细介绍

    汉字转拼音,pinyin4j使用详细介绍 首先,在pom.xml文件中导入依赖. <!-- pinyin4j --> <dependency><groupId>co ...

  5. pinyin4j介绍

    简介 pinyin4j是一个支持将简体和繁体中文转换到成拼音的Java开源类库,核心API为PinyinHelper和HanyuPinyinOutputFormat 官网: http://source ...

  6. JAVA实现汉字转换为拼音 pinyin4j/JPinyin

    转载自  JAVA实现汉字转换为拼音 pinyin4j/JPinyin 在项目中经常会遇到需求用户输入汉字后转换为拼音的场景,比如说通讯录,就会要求按名字首字符发音排序,如果自己写实现这方面的功能是个 ...

  7. java pinyin4j 首字母_通讯录之按汉字首字母排序 --java--pinyin4J

    最近开发手机端OA系统通讯录时遇到了用汉字首字母排序的问题,各种谷歌后发现了一个轮子pinyin4J,这个轮子是可以将汉字转换成字母拼音,个人觉得很好用,完美的解决了排序的问题,分享一下. 一.工具介 ...

  8. 汉字转拼音,TinyPinyin、Pinyin4j与JPinyin哪个库更快

    1. 介绍 本文对TinyPinyin.Pinyin4j与JPinyin三个汉字转拼音库的用法.测试代码及转换的结果做一个简单的总结. TinyPinyin 适用于Java和Android的快速.低内 ...

  9. 利用 pinyin4j 把汉字转化为拼音

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

最新文章

  1. 全局变量/static静态变量在section段中的分布
  2. 画图分析ehcach的缓存流程图
  3. (转)开源 Apache 服务器安全防护技术精要及实战
  4. 程序员面试金典 - 面试题 08.03. 魔术索引(二分递归)
  5. (13)拨云见日,闲聊哈希表
  6. python数据结构5 - 排序与搜索
  7. Java 设计模式 之 模板方法模式(Template Method)
  8. 2021-2027全球与中国DJ设备市场现状及未来发展趋势
  9. python 重命名文件出现乱码_python处理文件名乱码
  10. SPSS应用于均值检验
  11. 嵌入式(二)——Jlink接口定义
  12. iOS 苹果登录(第三方登录)
  13. 文科生学计算机能考研吗,求推荐文科生可以跨考计算机的名校
  14. krita windows编译源码
  15. Linux内核调试方法总结
  16. conda安装GPU版pytorch,结果却是cpu版本[找到问题根源,从容解决]
  17. 乐学成语(HappyIdiom)
  18. [基础服务] [数据库] ClickHouse的安装和配置
  19. 数据库系统概论——数据库安全性控制
  20. 我的世界1.8.9作弊java_我的世界超强作弊代码大全 掌控整个世界

热门文章

  1. 学习学习再学习(三)人人都是终身学习者
  2. 车辆信息c语言,用c语言编的车辆管理
  3. smart checkout、force checkout、don`t checkout
  4. phpstorm相关问题(不断更新)
  5. 在java 使什么居中的代码_java 居中的代码
  6. 大学生python兼职赚钱_普通大学生可以做点什么兼职赚钱?
  7. unity设置字体大小
  8. HTML/HTML5 基础知识 | 面试题专用
  9. 程序员2014年展望未来的八个小提示
  10. iOS10全新推送功能的实现