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. PHP - 代码分离

    总代码: <?php /* * Version:1.0 * CreateTime:2015年11月11日 * Author:HF_Ultrastrong *///引入公共文件,在公共文件中创建, ...

  2. python3.4 尝试 py2exe

    第一次成功将python3.4脚本生成 exe文件. 测试环境:win8.1 32位,python3.4,pyside py打包成exe的工具我所知道的有三种 cx-freeze , py2exe , ...

  3. MongoDB使用手册

    一.安装包下载地址 http://www.mongodb.org/downloads 二.服务器端使用 LINUX版本: ①用tar -zxvf mongodb-linux-x86_64-1.2.4. ...

  4. 基于visual Studio2013解决面试题之1403插入排序

     题目

  5. How to find variable is empty in shell script

    (1). var="" if [ -n "$var" ]; then     echo "not empty" else     echo ...

  6. 鼠标进入与离开的消息(使用CM_MOUSEENTER来判断是否进入控件)

    unit Unit1; interface uses  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs ...

  7. javascript 中 undefined 和 null 区别

    1.相同点 如果我们直接用 undefined == null  比较他们是相等的返回的将是 true. 2.区别 当我们用undefined === null 比较的时候最后返回的将是 false. ...

  8. [cocos2d-x]HelloWorldDemo

    实现一个demo,具备以下功能: 1.让几个字分别位于中间和四个角落. 2.中间的字体改变,并且带有闪烁功能. 3.单点触摸和多点触摸,并且能够实现滑动效果,滑动的话必须使用带有bool返回值的单点触 ...

  9. HDU 3068 最长回文 Manacher算法

    Manacher算法是个解决Palindrome问题的O(n)算法,能够说是个超级算法了,秒杀其它一切Palindrome解决方式,包含复杂的后缀数组. 网上非常多解释,最好的解析文章当然是Leetc ...

  10. Duanxx的C++学习: 使用类没有被定义 原因及解决方法

    今天,随着C++写的神经网络算法.我发现了一个很令人费解的问题,下面的描述一般地描述,例如: 我有两个类ClassA和ClassB,它们分别有成员变量a.b; ClassA有一个函数是这种:Funct ...