得到每个汉字的字首拼音码字母(大写)
2014-10-23 14:25
633 查看
/// <summary> /// 判断是否为汉字 /// </summary> /// <param name="chrStr">待检测字符串</param> /// <returns>是汉字返回true</returns> public static bool IsChineseCharacters(string chrStr) { Regex CheckStr = new Regex("[\u4e00-\u9fa5]"); return CheckStr.IsMatch(chrStr); } /// <summary> /// 得到每个汉字的字首拼音码字母(大写) /// </summary> /// <param name="chrStr">输入字符串</param> /// <returns>返回结果</returns> public static string GetHeadCharacters(string chrStr) { string strHeadString = string.Empty; Encoding gb = System.Text.Encoding.GetEncoding("gb2312"); for (int i = 0; i < chrStr.Length; i++) { //检测该字符是否为汉字 if (!IsChineseCharacters(chrStr.Substring(i, 1))) { strHeadString += chrStr.Substring(i, 1); continue; } byte[] bytes = gb.GetBytes(chrStr.Substring(i, 1)); string lowCode = System.Convert.ToString(bytes[0] - 0xA0, 16); string hightCode = System.Convert.ToString(bytes[1] - 0xA0, 16); int nCode = Convert.ToUInt16(lowCode, 16) * 100 + Convert.ToUInt16(hightCode, 16); //得到区位码 strHeadString += FirstLetter(nCode); } return strHeadString; } /// <summary> /// 通过汉字区位码得到其首字母(大写) /// </summary> /// <param name="nCode">汉字编码</param> /// <returns></returns> public static string FirstLetter(int nCode) { if (nCode >= 1601 && nCode < 1637) return "A"; if (nCode >= 1637 && nCode < 1833) return "B"; if (nCode >= 1833 && nCode < 2078) return "C"; if (nCode >= 2078 && nCode < 2274) return "D"; if (nCode >= 2274 && nCode < 2302) return "E"; if (nCode >= 2302 && nCode < 2433) return "F"; if (nCode >= 2433 && nCode < 2594) return "G"; if (nCode >= 2594 && nCode < 2787) return "H"; if (nCode >= 2787 && nCode < 3106) return "J"; if (nCode >= 3106 && nCode < 3212) return "K"; if (nCode >= 3212 && nCode < 3472) return "L"; if (nCode >= 3472 && nCode < 3635) return "M"; if (nCode >= 3635 && nCode < 3722) return "N"; if (nCode >= 3722 && nCode < 3730) return "O"; if (nCode >= 3730 && nCode < 3858) return "P"; if (nCode >= 3858 && nCode < 4027) return "Q"; if (nCode >= 4027 && nCode < 4086) return "R"; if (nCode >= 4086 && nCode < 4390) return "S"; if (nCode >= 4390 && nCode < 4558) return "T"; if (nCode >= 4558 && nCode < 4684) return "W"; if (nCode >= 4684 && nCode < 4925) return "X"; if (nCode >= 4925 && nCode < 5249) return "Y"; if (nCode >= 5249 && nCode < 5590) return "Z"; return ""; }
相关文章推荐
- ASP.NET输入汉字返回每个汉字拼音的头一个字母的大写形式
- php汉字转拼音,得到首字母
- OC学习之道:在实现通讯录的时候可能需要按姓名的首字母来分组,这里实现的就是把汉字转化为拼音并且是拼音首字母大写
- 中文汉字转拼音——大写(默认),小写,首字母大写
- java汉字转拼音以及得到首字母通用方法
- MYSQL 获取每个汉字的拼音首字母
- adnroid java 获取汉字 字母的首拼音,全拼音,大写首拼音
- 自动得到汉字拼音首字母的代码
- 取汉字拼音大写首字母
- [转]得到汉字拼音首字母
- Android ListView 按字母排序要求每个拼音内部子类按字母在上,汉字在下再排序
- 得到一个汉字的拼音第一个字母
- 得到汉字拼音首字母
- 根据汉字得到拼音首字母方法
- 根据汉字获取它的字符串拼音首字母(大写),含多音字
- 如何得到汉字的拼音首字母呢?
- Qt汉字得到汉字拼音首字母
- 输入汉字,得到汉字的大写首字母
- 得到汉字的拼音首字母
- 得到一个汉字的拼音第一个字母,如果是一个英文字母则直接返回大写字母