昨天下午在会议室给客户演示项目的时候,在最后客户突然提出来一个需求就是当输入汉字的时候,可以自动的将汉字转换成汉语拼音的全拼,当客户一提出来,搞技术出身的我,一下子就想去如何实现,瞬间产生的记忆中没有捕获到这种程序的存在,可能是因为我经验比较少;当时也没有拒绝用户这个需求,只是暂缓了一下。
下班吃晚饭后我马上打开Computer,Google了一下,果然的确在sourceforge有一个开源的Project就是做这个用的,欣喜若狂的我,立刻Download下来,然后又看了一下里面提供的Demo,觉得符合用户提出的要求,为了以后自己回首走过的人生道路上能够留下更多的足迹,我打算把它写在这里记录下来,既方便了自己也方便了大家,本人是一个非常喜欢Opensource的人,所以大学虽然四年在学校里面学的都是Microsoft那套东西,但是后来工作中却转向了Java,如今Sun公司已经被Oracle公司以74亿美元收购,其实在我看来这也是一个很好的归宿。对于开发人员来说,是好事还是坏事,让我们静观其发展。但是有一点不变的是我觉得Opensource,这是一个大的发展趋势,虽然Microsoft的Windows(视窗)OS(操作系统)给我留下了很好的印象,但是依旧没有改变我投身到开源大军中的欲望。对于各种商业运作我没有想过太多,我喜欢一句话:物竞天择,适者生存。我自己也是不断的努力,不断的学习,来适应这个快速发展的行业(IT)。
下面我把汉字转换成汉语拼音的一个Demo给大家展示在下面,这个Demo也是我在网上看到的我放在这里只是方便大家,没有其他意思。好了请看SourceCode as follows:
package weiqi;
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.HanyuPinyinVCharType;
import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;
public class GetPingYin {
public static String getPingYin(String src){
char[] t1 ;
t1=src.toCharArray();
String[] t2 = new String[t1.length];
HanyuPinyinOutputFormat t3 = new HanyuPinyinOutputFormat();
t3.setCaseType(HanyuPinyinCaseType.LOWERCASE);
t3.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
t3.setVCharType(HanyuPinyinVCharType.WITH_V);
String t4="";
int t0=t1.length;
try {
for (int i=0;i<t0;i++)
{
// 判断是否为汉字字符函数
if(java.lang.Character.toString(t1[i]).matches("[//u4E00-//u9FA5]+"))
{
t2 = PinyinHelper.toHanyuPinyinStringArray(t1[i], t3);
t4+=t2[0];
}
else
t4+=java.lang.Character.toString(t1[i]);
}
System.out.println(t4);//在控制台输出我们刚才测试的数据
t4 = t4.trim();
}
catch (BadHanyuPinyinOutputFormatCombination e1) {
e1.printStackTrace();
}
return t4;
}
public static void main(String[] args){
GetPingYin.getPingYin("伟琦");
}
}
最后大家,还有注意不要忘记将用到Jar包加到项目里面去,否则找不到相应的类哦!大家可以到它的网站上去下载,或者直接在我的资源里面也可以下载,我已经上传上去了。祝大家工作开心!
本人提供的资源下载网址: