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. MVC与WebForm的简单的比较

    MVC与WebForm的简单的比较 ASP 强制程序员将业务逻辑和展示页放到一个文件中 WebForm 允许程序员将业务逻辑与页面展示分开到不同的文件中,并且提供强大的开发平台来写  业务逻辑代码  ...

  2. last期末作业

    功能:每人完成一个新闻发布系统,包括系统的前台访问和后台管理. 要求: 1.使用ASP.NET MVC4开发. 2.在完成基本功能后,可以利用本学期所学的知识进行扩展. 3.完成日期为2013年12月 ...

  3. 三家DirectUI的商业公司

    目前正在研究DirectUI技术,分享一点心得给大家.关于DirectUI技术的介绍我在这里就不说了,可以上Google查一下,非常丰富.目前使用DirectUI技术开发的软件产品原来原丰富,比如QQ ...

  4. iOS开发--in house发布和安装(ipa重新签名)

    in house从字面意思理解就是‘内部的’,in house版本的ipa就是一个用于公司内部使用或测试的一个苹果应用程序安装包. 作为一个app应用程序开发者,在app应用程序在苹果商店上架前总需要 ...

  5. 将Qt 动态链接生成的exe及依赖dll打包方法

    源地址:http://blog.csdn.net/ztz0223/article/details/8939341 将Qt 动态链接生成的exe及依赖dll打包方法 原文:http://www.qtcn ...

  6. 按钮的图标 Button icons-JQUERY MOBILE 1.0正式版中文手册

    按钮的图标 Button icons-JQUERY MOBILE 1.0正式版中文手册 data-icon属性可以被用来创建如下所示的图标 左箭头data-icon="arrow-l&quo ...

  7. hdu4708

    Rotation Lock Puzzle Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Oth ...

  8. Swift - 给表格UITableView添加索引功能(快速定位)

    像iOS中的通讯录,通过点击联系人表格右侧的字母索引,我们可以快速定位到以该字母为首字母的联系人分组.   要实现索引,我们只需要两步操作: (1)实现索引数据源代理方法 (2)响应点击索引触发的代理 ...

  9. Sencha Touch 2 在MAC下详细的开发流程

    在不久的将来我相信Web App会流行的非常广, 能看到未来才能主宰未来.对于我们开发人员来说我觉得想成就一件伟大的事情,需要过硬的技术和好的想法,再加上决不放弃的精神,一定可以成功的. 以下在Mac ...

  10. Socket 心跳包机制总结

    跳包之所以叫心跳包是因为:它像心跳一样每隔固定时间发一次,以此来告诉服务器,这个客户端还活着.事实上这是为了保持长连接,至于这个包的内容,是没有什么特别规定的,不过一般都是很小的包,或者只包含包头的一 ...