pinyin4j的使用
 
pinyin4j是一个功能强悍的汉语拼音工具包,主要是从汉语获取各种格式和需求的拼音,功能强悍,下面看看如何使用pinyin4j。
 
 
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.exception.BadHanyuPinyinOutputFormatCombination;

import java.io.UnsupportedEncodingException;

/** 
* 拼音工具 
*/ 


public 
class PinyinToolkit {

/** 
         * 获取汉字串拼音首字母,英文字符不变 
         * 
         * @param chinese 汉字串 
         * @return 汉语拼音首字母 
         */ 

        
public 
static String cn2FirstSpell(String chinese) { 

                StringBuffer pybf = 
new StringBuffer(); 

                
char[] arr = chinese.toCharArray(); 

                HanyuPinyinOutputFormat defaultFormat = 
new HanyuPinyinOutputFormat(); 

                defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE); 

                defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE); 

                
for (
int i = 0; i < arr.length; i++) { 

                        
if (arr[i] > 128) { 

                                
try { 

                                        String[] _t = PinyinHelper.toHanyuPinyinStringArray(arr[i], defaultFormat); 

                                        
if (_t != 
null) { 

                                                pybf.append(_t[0].charAt(0)); 

                                        } 

                                } 
catch (BadHanyuPinyinOutputFormatCombination e) { 

                                        e.printStackTrace(); 

                                } 

                        } 
else { 

                                pybf.append(arr[i]); 

                        } 

                } 

                
return pybf.toString().replaceAll(
"\\W", "").trim(); 

        }

/** 
         * 获取汉字串拼音,英文字符不变 
         * 
         * @param chinese 汉字串 
         * @return 汉语拼音 
         */ 

        
public 
static String cn2Spell(String chinese) { 

                StringBuffer pybf = 
new StringBuffer(); 

                
char[] arr = chinese.toCharArray(); 

                HanyuPinyinOutputFormat defaultFormat = 
new HanyuPinyinOutputFormat(); 

                defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE); 

                defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE); 

                
for (
int i = 0; i < arr.length; i++) { 

                        
if (arr[i] > 128) { 

                                
try { 

                                        pybf.append(PinyinHelper.toHanyuPinyinStringArray(arr[i], defaultFormat)[0]); 

                                } 
catch (BadHanyuPinyinOutputFormatCombination e) { 

                                        e.printStackTrace(); 

                                } 

                        } 
else { 

                                pybf.append(arr[i]); 

                        } 

                } 

                
return pybf.toString(); 

        }

public 
static 
void main(String[] args) 
throws UnsupportedEncodingException { 

                String x = 
"中国你好"; 

                System.out.println(cn2FirstSpell(x)); 

                System.out.println(cn2Spell(x)); 

        } 

}

  
在某些系统上可能有字符集的问题,需要做预处理。

pinyin4j的使用的更多相关文章

  1. 通过pinyin4j.jar将(汉字拼音混合字符串)转化成字母首字母

    通过pinyin4j.jar将(汉字拼音混合字符串)转化成字母首字母 例如 我的中国心    ==> wdzgx 我的中国心ya ==> wdzgxya woai我的中国 ==> w ...

  2. java-汉字转换拼音-pinyin4j.jar

    使用pinyin4j将汉字转成拼音,附件为pinyin4j的jar包 import net.sourceforge.pinyin4j.PinyinHelper; import net.sourcefo ...

  3. 汉字转拼音(pinyin4j)

    1.引入依赖 <dependency> <groupId>pinyin4j.sourceforge.net</groupId> <artifactId> ...

  4. 【转】java开源类库pinyin4j的使用

    最近CMS系统为了增加查询的匹配率,需要增加拼音检索字段,在网上找到了pinyin4j的java开源类库,提供中文转汉语拼音(并且支持多音字), 呵呵,看了看他的demo,决定就用它了,因为我在实际使 ...

  5. 利用PinYin4j 实现List中的对象按数字,字母, 汉字排序

    要排序的对象: import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pinyin4j.format.HanyuPi ...

  6. pinyin4j

    最近在倒腾与搜索相关的拼音检查技术,顺便看了一下中文转拼音开源插件pinyin4j的源码,参考资料:http://blog.csdn.net/hfhwfw/archive/2010/11/23/603 ...

  7. pinyin4j使用示例

    pinyin4j的主页:http://pinyin4j.sourceforge.net/pinyin4j能够根据中文字符获取其对应的拼音,而且拼音的格式可以定制pinyin4j是一个支持将中文转换到拼 ...

  8. 最好用的汉字转拼音代码PinYin4Objc(PinYin4J的objc版本)

    转:https://github.com/kimziv/PinYin4Objc 最好用的汉字转拼音代码PinYin4Objc(PinYin4J的objc版本)(更新到v1.1.1,增加block异步处 ...

  9. 汉语转拼音pinyin4j

    分享一个将汉语转成拼音的工具包:pinyin4j-2.5.0.jar,下载地址:http://download.csdn.net/detail/abc_key/7629141 使用例如以下代码 imp ...

随机推荐

  1. SQL Server 存储过程、触发器、游标

    存储过程 1.存储过程是事先编好的.存储在数据库中的程序,这些程序用来完成对数据库的指定操作. 2.系统存储过程: SQL Server本身提供了一些存储过程,用于管理有关数据库和用户的信息. 用户存 ...

  2. Oracle数据库索引使用及索引失效总结

    容易引起oracle索引失效的原因很多: 1.在索引列上使用函数.如SUBSTR,DECODE,INSTR等,对索引列进行运算.需要建立函数索引就可以解决了. 2.新建的表还没来得及生成统计信息,分析 ...

  3. MDK的优化应用

    MDK的优化应用 http://blog.163.com/zhaojun_xf/blog/static/300505802011291384721/ 使用Keil/MDK这么多年了,一直都没有使用它的 ...

  4. (step8.2.7)hdu 1517(A Multiplication Game——巴什博弈变形)

    题目大意:输入一个整数n.谁先报的数大于n,谁就输了.(初始值p  == 1 , 后一个人报的数必须在前一个人报的数的基础上乘上(2 ~ 9)之间的任意一个数) 解题思路:巴什博奕的变形 1) 解题思 ...

  5. C语言中的enum(枚举)使用方法

    近期在写数据结构的广义表时候用到了这个概念,在学习C语言的时候没有太注意们这里学一下. 我在网上结合了非常多资料,这里自己总结一下. 首先说.JAVA和C++中都有枚举类型. 假设一个变量你须要几种可 ...

  6. 实现文件下载的java代码

    实现文件下载的java代码 //这是实现下载类(servlet),详细思路代码例如以下://也可连接数据库package com.message; import javax.servlet.*;imp ...

  7. 为什么必须是final的呢?

    一个谜团 如果你用过类似guava这种“伪函数式编程”风格的library的话,那下面这种风格的代码对你来说应该不陌生: 1 2 3 4 5 6 7 8 9 public void tryUsingG ...

  8. UVALive 2519 Radar Installation 雷达扫描 区间选点问题

    题意:在坐标轴中给出n个岛屿的坐标,以及雷达的扫描距离,要求在y=0线上放尽量少的雷达能够覆盖全部岛屿. 很明显的区间选点问题. 代码: /* * Author: illuz <iilluzen ...

  9. Android滑动菜单框架完全解析,教你如何一分钟实现滑动菜单特效

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/8744400 之前我向大家介绍了史上最简单的滑动菜单的实现方式,相信大家都还记得.如 ...

  10. hdu 4803 贪心/思维题

    http://acm.hdu.edu.cn/showproblem.php?pid=4803 话说C++还卡精度么?  G++  AC  C++ WA 我自己的贪心策略错了 -- 就是尽量下键,然后上 ...