android中将汉字转为拼音

本文介绍了一种将汉字转换为拼音及拼音首字母的有效方法,适用于处理包含汉字、英文字符和数字的字符串,并能忽略其他符号。通过使用pinyin4j库,该方法能够灵活应用于各种项目中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

汉字转拼音,汉字转拼音首字母~

下面的方法是在做项目的时候,从网上查了好久才得到的~虽然不是自己写的,但是也改的差不多了~放在这里供大家参考哈

http://download.youkuaiyun.com/detail/feihongmin/8090633是汉字转拼音要使用的pinyin4j的jar包,可以从官网上下载的


/**

* 汉字转换位全拼音,英文字符不变,其他符号忽略,

* @param chines
*            汉字
* @return 小写全拼
*/
public static String getPingYin(String chines) {
StringBuilder sb = new StringBuilder();
char[] nameChar = chines.toCharArray();


for (int i = 0; i < nameChar.length; i++) {
String nameCharStr = java.lang.Character.toString(nameChar[i]);
if (nameCharStr.matches("[\\u4E00-\\u9FA5]+")) {
String pinyinStr = getCharacterPinYin(nameChar[i]);
if (pinyinStr != null) {
sb.append(pinyinStr);
}


} else if (nameCharStr.matches("^[a-zA-Z]*")) {
sb.append(nameCharStr.toLowerCase());


} else if (nameCharStr.matches("[0-9]*")) {
sb.append(nameCharStr);
}
}
return sb.toString();
}


public static String getCharacterPinYin(char c) {
HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
String[] pinyin = null;


try {
pinyin = PinyinHelper.toHanyuPinyinStringArray(c, format);
} catch (BadHanyuPinyinOutputFormatCombination e) {
e.printStackTrace();
}


// 如果c不是汉字,toHanyuPinyinStringArray会返回null
if (pinyin == null)
return null;


// 只取一个发音,如果是多音字,仅取第一个发音
return pinyin[0];


}


/**
* 汉字转换位汉语拼音首字母,英文字符不变,其他符号忽略,

* @param chines
*            汉字
* @return 小写简拼
*/
public static String getShortPinyin(String chines) {
StringBuilder sb = new StringBuilder();
char[] nameChar = chines.toCharArray();


for (int i = 0; i < nameChar.length; i++) {
String nameCharStr = java.lang.Character.toString(nameChar[i]);


if (nameCharStr.matches("[\\u4E00-\\u9FA5]+")) {
String pinyinStr = getCharacterShortPinYin(nameChar[i]);
if (pinyinStr != null) {
sb.append(pinyinStr);
}


} else if (nameCharStr.matches("^[a-zA-Z]*")) {
sb.append(nameCharStr.toLowerCase());


} else if (nameCharStr.matches("[0-9]*")) {
sb.append(nameCharStr);
}
}


return sb.toString();
}


public static String getCharacterShortPinYin(char c) {
HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
String[] pinyin = null;


try {
pinyin = PinyinHelper.toHanyuPinyinStringArray(c, format);
} catch (BadHanyuPinyinOutputFormatCombination e) {
e.printStackTrace();
}


if (pinyin == null)
return null;


// 只取一个发音,如果是多音字,仅取第一个发音的首字母
return java.lang.Character.toString(pinyin[0].charAt(0));
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值