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. c语言,volatile

          一.意义: 该关键字的意义就是表示定义的变量值随时都会改变,必须从变量的地址处读取值,所以只有这个变量在使用过程中可能被改变(比如中断程序),就需要用这个关键字说明. )volatile, ...

  2. javascript笔记整理(window对象)

    浏览器对象模型 (BOM--Browser Object Model),window对象是BOM中所有对象的核心 A.属性 1.(位置类型-获得浏览器的位置) IE:window.screenLeft ...

  3. HTML5的优缺点是什么?

    HTML5的优缺点是什么?作为HTML的第五次重大修改,HTML5有哪些改进?HTML5又有哪些缺点? 网络标准 HTML5本身是由W3C推荐出来的,它的开发是通过谷歌.苹果,诺基亚.中国移动等几百家 ...

  4. POJ 2404 Jogging Trails

    Jogging Trails Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 2122   Accepted: 849 Des ...

  5. 跟着鬼哥学so改动,一,准备篇

    图/文 听鬼哥说故事 闲话少说,so的改动,重要性大家都知道,这里从头编写so文件,分析so文件,改动so文件,打算做一个系列的教程,当然,主要是看时间同意. android的sdk配置以及ndk环境 ...

  6. hdu1391(Number Steps )

    Problem Description Starting from point (0,0) on a plane, we have written all non-negative integers ...

  7. overflow:hidden与position:absolute

    在做一个下拉框的动画效果中遇到了这个bug,记录一下. 在写下拉框的动画的时候,一般我们的做法都是把下拉框的外盒子设为overflow:hidden,然后设下外层盒子高度,之后通过js慢慢的改变高度从 ...

  8. 基于visual Studio2013解决C语言竞赛题之1066进制转化

        题目 解决代码及点评 /************************************************************************/ /* ...

  9. Effective C++_笔记_条款03_尽可能使用const

    (整理自Effctive C++,转载请注明.整理者:华科小涛@http://www.cnblogs.com/hust-ghtao/) 关键字const多才多艺,语法变化多端.关于const的基本用法 ...

  10. Linux - 文件基本操作管理

    文件基本操作管理   复制文件和目录 格式: Cp 源文件(文件夹) 新目标文件名(文件夹) 相同目录下,指定文件名. 不同目录下,不需要指定文件名. 参数: –r:递归复制整个目录树. –v:再复制 ...