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("测试"));
}
}
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