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

 
 String[] pinyin = PinyinHelper.toHanyuPinyinStringArray(‘赵’);
 //该类还有其他的拼音转换形式,但是基本上用不到,就不介绍了
 返回的数组即是该字符的拼音,如上例就是pinyin[0]=zhao,后面的数字代表声调,声调为5表示轻读,无声调。之所谓返回数组,是因为被判定的汉字有可能有多个读音。如果输入的参数不是汉字,则返回null。
 
 拼音格式化
 如果对于拼音转换后的结果有一些特定的格式要求目前pinyin4j支持:
 声调格式化。例如:“刘”字的格式化后为“liu2”或“liu”或“liú”
 对特殊拼音ü的的显示格式。例如“u:”或“v”或“ü”
 大小写的转换。例如:“liu2”或“LIU2”
 以上这些格式可以混合使用,下面就来介绍具体的使用方法,首先需要创建格式化对象HanyuPinyinOutputFormat,例如:
 HanyuPinyinOutputFormat outputFormat = new HanyuPinyinOutputFormat();
 然后分别调用outputFormat的set方法设置上述一些格式要求:
 设置声调格式:
 outputFormat.setToneType(HanyuPinyinToneType);
 
 方法参数HanyuPinyinToneType有以下常量对象:
 HanyuPinyinToneType.WITH_TONE_NUMBER 用数字表示声调,例如:zhao4
 HanyuPinyinToneType.WITHOUT_TONE 无声调表示,例如:zhao
 HanyuPinyinToneType.WITH_TONE_MARK 用声调符号表示,例如:zhao
 设置特殊拼音ü的显示格式:
 
 outputFormat.setVCharType(HanyuPinyinVCharType);
 
 方法参数HanyuPinyinVCharType有以下常量对象:
 HanyuPinyinVCharType.WITH_U_AND_COLON 以U和一个冒号表示该拼音, 
 HanyuPinyinVCharType.WITH_V 以V表示该字符, 
 HanyuPinyinVCharType.WITH_U_UNICODE  
 
 设置大小写格式
 outputFormat.setCaseType(HanyuPinyinCaseType);
 HanyuPinyinCaseType.LOWERCASE 转换后以全小写方式输出
 HanyuPinyinCaseType.UPPERCASE 转换后以全大写方式输出
 
 设置好格式对象后还是利用上述的工具类方法进行拼音转换,只不过需要将格式化对象当成方法参数传入转换方法,告知要转换的格式要求:
 String[] pinyin = PinyinHelper.toHanyuPinyinStringArray(‘刘’, outputFormat);
 但该方法会有异常抛出,注意处理。
 
public class Text {
public static String[] Convert( char hz) {
HanyuPinyinOutputFormat outputFormat = new HanyuPinyinOutputFormat();
outputFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
outputFormat.setVCharType(HanyuPinyinVCharType.WITH_U_UNICODE);
outputFormat.setToneType(HanyuPinyinToneType.WITH_TONE_MARK);
String[] Pinyin = null; try {
Pinyin = PinyinHelper.toHanyuPinyinStringArray(hz,outputFormat);
} catch (BadHanyuPinyinOutputFormatCombination e) {
e.printStackTrace();
}
return Pinyin;
}
public static void main(String[] args) {
String string = "我是中国人";
char str[] = string.toCharArray();
for(char s : str)
{
String[] string1 = Convert(s);
System.out.print(string1[0]+" ");
}
}
}

  

java 解析汉字拼音的更多相关文章

  1. java获取汉字拼音首字母 --转载

    在项目中要更能根据某些查询条件(比如姓名)的首字母作为条件进行查询,比如查一个叫"李晓明"的人,可以输入'lxm'.写了一个工具类如下: import java.io.Unsupp ...

  2. JAVA获取汉字拼音首字母

    package com.common.util; import java.io.UnsupportedEncodingException; /** * 取得给定汉字串的首字母串,即声母串 * Titl ...

  3. Java 获取汉字拼音的方法

    package lius.util;   import java.io.Serializable; import java.util.ArrayList;   public class JString ...

  4. java取得汉字拼音(pinyin4j)

    jar包:pinyin4j.jar 基本用法: String[] pinyin = PinyinHelper.toHanyuPinyinStringArray('重'); 例如“重”字,该方法返回一个 ...

  5. java中汉字自动转换成拼音

    java中汉字自动转换成拼音 1.需要下载jar包 pinyin4j.2.5.0.jar ,加入到WEB-INF下的lib里边,右键add to bulid path. 2.[代码]PinYinUti ...

  6. [pinyin4j] java版汉字转换拼音(大小写)

    pinyin4J 是一个可以将汉字转换成拼音的lib,非常实用,其maven地址为:http://mvnrepository.com/artifact/com.belerweb/pinyin4j/2. ...

  7. java实现汉字转为拼音

    java实现汉字转为拼音: 1.需要导入pinyin4j.jar package com.loo.pinyin; import net.sourceforge.pinyin4j.PinyinHelpe ...

  8. AutoCompleteTextView输入汉字拼音首字母实现过滤提示(支持多音字,Filterable的使用)

    AutoCompleteTextView具有输入提示的功能,但是它的这种提示不适合对股票列表的过滤,如果你玩过股票软件,就会知道只要输入股票名称的首字母或股票代码就会出现符合匹配的股票,这种过滤怎么实 ...

  9. C# 使用微软的Visual Studio International Pack 类库提取汉字拼音首字母

    首先下载Visual Studio International Pack 1.0,官方下载地址:http://www.microsoft.com/downloads/zh-cn/details.asp ...

随机推荐

  1. 学习Perl6: slice fastq file

    需求: 只获取 ath 物种的 hairpin 序列 文件格式如下所示,以>打头的为 header,紧跟的为序列[AUCG]+ (Perl5 regexp 格式) #!/usr/bin/env ...

  2. flex 右键连接

    var menuItem:ContextMenuItem = new ContextMenuItem("技术支持:中科天宇软件有限公司", true, true); menuIte ...

  3. expdp impdp中 exclude/include 的使用

    exclude和include参数能够在使用expdp或impdp是对特定的对象或对象类型进行筛选或过滤.比如因工作的需要导出特定的表或不导出特定 的表.视图以及存储过程.索引.约束.授权统计信息等等 ...

  4. Quartz集群原理及配置应用

    1.Quartz任务调度的基本实现原理 Quartz是OpenSymphony开源组织在任务调度领域的一个开源项目,完全基于Java实现.作为一个优秀的开源调度框架,Quartz具有以下特点: (1) ...

  5. android bluetooth蓝牙移植

    http://blog.csdn.net/zhengmeifu/article/details/7705172 前段时间移植神念系统需要使用到bluetooth功能,现将移植过程中碰到的问题简要列一下 ...

  6. Oracle找出非数字

    可以这样判断: select translate('99999999999999', '\1234567890', '\') from dual; 返回的是空 ​ select translate(' ...

  7. string xml json格式区别

    string 是一种最普通的储存一串字符的数据格式 xml 是一种可扩展标记语言,它可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言. 它非常适合万维网传输,提供统一的方 ...

  8. JAVA基础知识之网络编程——-关于阻塞IO/非阻塞IO/同步IO/异步IO的一些参考文章

    Java NIO之多个Selector的实现Java NIO类库Selector机制解析(上) Java NIO类库Selector机制解析(下) https://www.zhihu.com/ques ...

  9. ural 1115,搜索

    题目链接:http://acm.timus.ru/problem.aspx?space=1&num=1115 题意:n个军舰,m个海岸线,各个长度给出,求n个军舰怎么组成这些海岸线. 思路很简 ...

  10. 调试器不能连接到STM32的问题与解决办法

    很多人都碰到过调试器不能连接到STM32的问题,不管是IAR的J-Link还是Keil的ULink,或者是ST的ST-Link.出现这个问题时,调试软件会提示不能建立与Cortex-M3的连接,或提示 ...