汉字转拼音的工具类

随时随地阅读更多技术实战干货,获取项目源码、学习资料,请关注源代码社区公众号(ydmsq666)

介绍3个方法:汉字转换为拼音、获取每个汉字的首字母、获取第一个汉字的首字母(如果是姓名,即姓的首字母),代码如下:

PinYinUtil:

package com.home;

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;

/**
 * 拼音转换工具类
 * 
 * @author Administrator
 * 
 */
public class PinYinUtil {
	/**
	 * 将字符串中的中文转化为拼音,其他字符不变
	 * 
	 * @param inputStr
	 * @return
	 */
	public static String getPinYin(String inputStr) {
		HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
		format.setCaseType(HanyuPinyinCaseType.LOWERCASE);
		format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
		format.setVCharType(HanyuPinyinVCharType.WITH_V);
		char[] input = inputStr.trim().toCharArray();
		String output = "";
		try {
			if (input != null) {
				for (char c : input) {
					if (Character.toString(c).matches("[\\u4E00-\\u9FA5]+")) {
						String[] temp = PinyinHelper.toHanyuPinyinStringArray(c, format);
						output += temp[0];
					} else {
						output += Character.toString(c);
					}
				}
			}

		} catch (BadHanyuPinyinOutputFormatCombination e) {

		}
		return output;
	}

	/**
	 * 得到每个汉字首字母,英文字符不变
	 * 
	 * @param chineseStr
	 * @return
	 */
	public static String getFirstSpell(String chineseStr) {
		StringBuffer sb = new StringBuffer();
		char[] input = chineseStr.toCharArray();
		HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
		format.setCaseType(HanyuPinyinCaseType.LOWERCASE);
		format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
		if (input != null) {
			for (char c : input) {
				if (c > 128) {
					try {
						String[] temp = PinyinHelper.toHanyuPinyinStringArray(c, format);
						if (temp != null) {
							sb.append(temp[0].charAt(0));
						}
					} catch (BadHanyuPinyinOutputFormatCombination e) {
						e.printStackTrace();
					}
				} else {
					sb.append(c);
				}
			}
		}
		return sb.toString().replaceAll("\\W", "").trim();
	}

	/**
	 * 获取姓名中姓的首字母
	 * 
	 * @param chineseStr
	 * @param isUpper
	 *            是否转换为大写字母
	 * @return
	 */
	public static String getFirstLetter(String chineseStr, boolean isUpper) {
		String pinyin = getPinYin(chineseStr);
		String firstLetter = pinyin.substring(0, 1);
		if (isUpper) {
			firstLetter = firstLetter.toUpperCase();
		} else {
			firstLetter = firstLetter.toLowerCase();
		}
		return firstLetter;
	}
}


拼音转换需要用到的jar包地址:拼音转换工具包-Android工具类资源-CSDN下载

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

u010142437

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值