• 大小: 175KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-12
  • 语言: Java
  • 标签:

资源简介

java工具类 实现汉字与拼音的自动转换,支持中文字符和拼音之间的转换。拼音输出格式可以定制。

资源截图

代码片段和文件信息

package cn.itcast.bos.utils;

import java.util.Arrays;

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.exception.BadHanyuPinyinOutputFormatCombination;

public class PinYin4jUtils {
/**
 * 将字符串转换成拼音数组
 * 
 * @param src
 * @return
 */
public static String[] stringToPinyin(String src) {
return stringToPinyin(src false null);
}

/**
 * 将字符串转换成拼音数组
 * 
 * @param src
 * @return
 */
public static String[] stringToPinyin(String src String separator) {

return stringToPinyin(src true separator);
}

/**
 * 将字符串转换成拼音数组
 * 
 * @param src
 * @param isPolyphone
 *            是否查出多音字的所有拼音
 * @param separator
 *            多音字拼音之间的分隔符
 * @return
 */
public static String[] stringToPinyin(String src boolean isPolyphone
String separator) {
// 判断字符串是否为空
if (““.equals(src) || null == src) {
return null;
}
char[] srcChar = src.toCharArray();
int srcCount = srcChar.length;
String[] srcStr = new String[srcCount];

for (int i = 0; i < srcCount; i++) {
srcStr[i] = charToPinyin(srcChar[i] isPolyphone separator);
}
return srcStr;
}

/**
 * 将单个字符转换成拼音
 * 
 * @param src
 * @return
 */
public static String charToPinyin(char src boolean isPolyphone
String separator) {
// 创建汉语拼音处理类
HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
// 输出设置,大小写,音标方式
defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);

StringBuffer tempPinying = new StringBuffer();

// 如果是中文
if (src > 128) {
try {
// 转换得出结果
String[] strs = PinyinHelper.toHanyuPinyinStringArray(src
defaultFormat);

// 是否查出多音字,默认是查出多音字的第一个字符
if (isPolyphone && null != separator) {
for (int i = 0; i < strs.length; i++) {
tempPinying.append(strs[i]);
if (strs.length != (i + 1)) {
// 多音字之间用特殊符号间隔起来
tempPinying.append(separator);
}
}
} else {
tempPinying.append(strs[0]);
}

} catch (BadHanyuPinyinOutputFormatCombination e) {
e.printStackTrace();
}
} else {
tempPinying.append(src);
}

return tempPinying.toString();

}

public static String hanziToPinyin(String hanzi) {
return hanziToPinyin(hanzi “ “);
}

/**
 * 将汉字转换成拼音
 * 
 * @param hanzi
 * @param separator
 * @return
 */
public static String hanziToPinyin(String hanzi String separator) {

// 创建汉语拼音处理类
HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
// 输出设置,大小写,音标方式
defaultFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);

String pinyingStr = ““;
try {

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        7541  2015-01-07 12:16  pinyin4j\PinYin4jUtils.java
     文件      188920  2015-01-07 12:16  pinyin4j\pinyin4j-2.5.0.jar
     目录           0  2018-01-31 19:58  pinyin4j\

评论

共有 条评论

相关资源