首先很不好意思,由于工作实在太忙,周末也好多时间忙在工作上,所以这两年博客更新地不勤。为了避免被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官方得到最新版本
本文出自 “虫酷” 博客,请务必保留此出处
以诚感人者,人亦诚而应。