JSP学习笔记(一百零八):使用Java将汉字转为拼音

这里使用了pinyin4j包,官方地址为:http://pinyin4j.sourceforge.net/ 最新版本为pinyin4j-2.5.0

直接上代码吧,很简单,做了一些简单的注释:
package com.site.test;

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 PinYinUtil {
    
    
public static String formatPinYin(String str)
    {
        StringBuffer buffer 
= new StringBuffer();
        HanyuPinyinOutputFormat format 
= new HanyuPinyinOutputFormat();
        format.setCaseType(HanyuPinyinCaseType.LOWERCASE);      // 转化为小写
        format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);      // 不带声调
        format.setVCharType(HanyuPinyinVCharType.WITH_V);      // ü用v带替

        
char[] c = str.toCharArray();
        
for (int i = 0; i < c.length; i++) {
            
try {
                String[] s 
= PinyinHelper.toHanyuPinyinStringArray(c[i], format);
                
if (s != null) {
                    buffer.append(s[
0]);      // 这里一般数组长度为1,大于1是因为汉字可能会有多音字
                } 
else {
                    buffer.append(c[i]);      // 不是汉字的情况
                }
            } 
catch (BadHanyuPinyinOutputFormatCombination e) {
            }
        }
        
        
return buffer.toString();
    }

    
/**
     * 
@param args
     
*/
    
public static void main(String[] args) {
        System.out.println(PinYinUtil.getPinYin(
"测试"));

    }

}

 

输出结果为:ceshi

posted @ 2009-08-15 23:02  魔豆  阅读(375)  评论(0编辑  收藏  举报