根据汉字获取它的字符串拼音首字母(大写),含多音字
2013-12-08 10:34
579 查看
/// <summary> /// 根据汉字获取它的字符串拼音首字母(大写),含多音字 /// </summary> /// <param name="chineseStr"></param> /// <returns></returns> public static string GetFirstSpellByChinese(string chineseStr) { int i, j, k, m; string tmpStr; string returnStr = ""; //返回最终结果的字符串 string[] tmpArr; for (i = 0; i < chineseStr.Length; i++) { //处理汉字字符串,对每个汉字的首字母进行一次循环 tmpStr = GetShellByChinese((char)chineseStr[i]); //获取第i个汉字的拼音首字母,可能为1个或多个 if (tmpStr.Length > 0) { //汉字的拼音首字母存在的情况才进行操作 if (returnStr != "") { //不是第一个汉字 Regex regex = new Regex(","); tmpArr = regex.Split(returnStr); returnStr = ""; for (k = 0; k < tmpArr.Length; k++) { for (j = 0; j < tmpStr.Length; j++) //对返回的每个首字母进行拼接 { string charcode = tmpStr[j].ToString(); //取出第j个拼音字母 returnStr += tmpArr[k] + charcode + ","; } } if (returnStr != "") returnStr = returnStr.Substring(0, returnStr.Length - 1); } else { //构造第一个汉字返回结果 for (m = 0; m < tmpStr.Length - 1; m++) returnStr += tmpStr[m] + ","; returnStr += tmpStr[tmpStr.Length - 1]; } } } return returnStr; //返回处理结果字符串,以,分隔每个拼音组合 } /// <summary> /// 获取单个汉字对应的拼音首字符字符串 /// </summary> /// <param name="chineseCh"></param> /// <returns></returns> private static string GetShellByChinese(char chineseCh) { // 汉字拼音首字母列表 本列表包含了20902个汉字,收录的字符的Unicode编码范围为19968至40869 string strChineseFirstPY = //此处收录了375个多音字 string MultiPinyin = string resStr = ""; int i, j, uni; uni = (UInt16)chineseCh; if (uni > 40869 || uni < 19968) return resStr; //返回该字符在Unicode字符集中的编码值 i = MultiPinyin.IndexOf(uni.ToString()); //检查是否是多音字,是按多音字处理,不是就直接在strChineseFirstPY字符串中找对应的首字母 if (i < 0) //获取非多音字汉字首字母 { resStr = strChineseFirstPY[uni - 19968].ToString(); } else { //获取多音字汉字首字母 j = MultiPinyin.IndexOf(",", i); resStr = MultiPinyin.Substring(i + 6, j - i - 6); } return resStr; }
转自红黑联盟 似水无痕 原文地址:http://www.2cto.com/kf/201307/226708.html
相关文章推荐
- 根据汉字获取它的字符串拼音首字母(大写),含多音字
- 根据汉字获取它的字符串拼音首字母(大写),含多音字
- oracle 根据汉字获取拼音首字母大写函数
- ASP.NET 根据汉字获取汉字拼音的首字母(含多音字)
- 获取拼音首字母(传入汉字字符串, 返回大写拼音首字母)
- ASP.NET 根据汉字获取汉字拼音的首字母(含多音字)
- MySQL通过函数获取字符串汉字拼音首字母大写字符串
- adnroid java 获取汉字 字母的首拼音,全拼音,大写首拼音
- 【原创】字符串工具类--获取汉字对应的拼音(全拼或首字母)
- 获取字符串中的汉字拼音首字母
- js根据汉字字符串获取汉字首字母拼接字符串
- 处理微博上类似 @ 或者 # 的特殊转义字符 &&&根据汉字字符串获取该字符串的拼音然后取得首字母
- 获取字符串中的汉字拼音首字母
- vb 获取字符串汉字拼音的首字母
- 根据一个包含汉字的字符串返回一个汉字拼音首字母的字符串
- asp.net 获取汉字字符串的拼音首字母,含多音字
- 获取字符串中的汉字拼音首字母
- 获取英文字符串的首字母和汉字字符串的拼音首字母
- ORACLE根据汉字获取拼音码:首字母/全拼/首字母截取
- PHP 获取汉字拼音首字母大写