java实现汉字取拼音首字母–尝试着贴些简洁的对大家可能有用的代码

首先很不好意思,由于工作实在太忙,周末也好多时间忙在工作上,所以这两年博客更新地不勤。为了避免被lead误解成“在论坛上鬼混”,所以以后发贴尽量少写文字,直截了当贴代码。为什么这么做,主要是在平常工作中可能会遇上一些问题,在解决后总想将一些代码与大家分享(当然如果网上有许多类似代码了就不贴了,我贴的要么是网上有很多用下来不爽的或者甚至有抛异常的,所以才贴上自己的代码。本博客的原则是如果不写转载,那100%原创. 好了,这是第一篇,以后就啥都不说,,一切尽在注释中。

import net.sourceforge.pinyin4j.*;

import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;

import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;

import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;

public class Pinyin4jtest

{

/**

* 输入汉字字符串,得到其每个字的拼音首字母

* @param chinese 汉字与其它混杂的源字符串

* @return 首字母(不是汉字的部分原样返回)

* @throws BadHanyuPinyinOutputFormatCombination

*/

public static String getPinyIninitialsLetters(String chinese) throws BadHanyuPinyinOutputFormatCombination

{

String rtnStr=””;

char singlechar;

HanyuPinyinOutputFormat format=new HanyuPinyinOutputFormat();

format.setToneType(HanyuPinyinToneType.WITHOUT_TONE); //取得拼音的格式为不带声调号

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

{

singlechar=chinese.charAt(i);

String[] pinyin=PinyinHelper.toHanyuPinyinStringArray(singlechar,format);

if(pinyin==null||pinyin.length==0)

{

rtnStr+=singlechar;

}

else{

rtnStr+=pinyin[0].substring(0, 1);//多音字时只取第一个音,并取得其拼音手字母

}

}

return rtnStr;

}

/**

* 最简单的测试主程序,也不去用Junit了,好让大家省点jar包

* @param args

* @throws BadHanyuPinyinOutputFormatCombination

*/

public static void main(String[] args) throws BadHanyuPinyinOutputFormatCombination

{

String pinyinini=getPinyIninitialsLetters(“中国第1峰”).toUpperCase();

System.out.println(pinyinini);

}

}

//以上例子用到的 jar包為pinyin4j-2.5.0.jar,你可以在sourceforge官方得到最新版本

本文出自 “虫酷” 博客,请务必保留此出处

以诚感人者,人亦诚而应。

java实现汉字取拼音首字母–尝试着贴些简洁的对大家可能有用的代码

相关文章:

你感兴趣的文章:

标签云: