拼音工具类,能将汉字转换成拼音的首字母

import net.sourceforge.pinyin4j.PinyinHelper;

import java.util.regex.Pattern;

/** * 拼音工具类,能将汉字转换成拼音的首字母 */

public class NameSpellUtil

{ /* 用于中文判断的正则表达式 */

private static final String regexStr = "[\u4e00-\u9fa5]";

/** * 将一个字符串中的汉字转换成拼音首字母、非汉字则不变 * * @param cn * String * @return String */

public static String toPinyin(String cn)

{ String pinyin = null; if (null == cn || 0 == cn.trim().length()) { return pinyin; }

/* 去掉字符串前后的空格 */

cn = cn.trim(); char[] chineseCharacterArr = cn.toCharArray();

// 转换成汉字字符数组 char[] letteCharacterArr = new char[chineseCharacterArr.length];

// 字母字符数组 for (int i = 0; i < chineseCharacterArr.length; i++) { // 得到汉字拼音的首字母 letteCharacterArr[i] = getFirstLetterFromPinyin(chineseCharacterArr[i]); } if (0 != letteCharacterArr.length) { pinyin = new String(letteCharacterArr); pinyin = pinyin.toUpperCase(); } return pinyin; } /* 得到一个汉字的拼音的首字母 */ private static char getFirstLetterFromPinyin(char cn) { // 判断cn是否为一个合法的汉字,不是则直接返回cn if (!isChineseCharacters(cn)) { return cn; } String[] pyArr = PinyinHelper.toHanyuPinyinStringArray(cn); char py = pyArr[0].charAt(0); return py; } /** * 判断字符是否为一个汉字 * * @param cn * char * @return boolean */ public static boolean isChineseCharacters(char cn) { boolean b = false; if (Pattern.matches(regexStr, String.valueOf(cn))) { b = true; } return b; } public static void main(String[] args) { String s = "张飞"; System.out.println(s + "=" + NameSpellUtil.toPinyin(s)); } }

转载于:https://www.cnblogs.com/majian714/archive/2011/11/30/2269040.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值