.net获取汉字助记码

  1.         /// <summary>  
  2.         /// 提取汉字首字母  
  3.         /// </summary>  
  4.         /// <param name="strText">需要转换的字</param>  
  5.         /// <returns>转换结果</returns>  
  6.         public static string GetChineseSpell(string strText)  
  7.         {  
  8.             int len = strText.Length;  
  9.             string myStr = "";  
  10.             for (int i = 0; i < len; i++)  
  11.             {  
  12.                 myStr += getSpell(strText.Substring(i, 1));  
  13.             }  
  14.             return myStr;  
  15.         }  
  16.         /// <summary>  
  17.         /// 把提取的字母变成大写  
  18.         /// </summary>  
  19.         /// <param name="strText">需要转换的字符串</param>  
  20.         /// <returns>转换结果</returns>  
  21.         public static string GetLowerChineseSpell(string strText)  
  22.         {  
  23.             return GetChineseSpell(strText).ToLower();  
  24.         }  
  25.         /// <summary>  
  26.         /// 把提取的字母变成大写  
  27.         /// </summary>  
  28.         /// <param name="myChar">需要转换的字符串</param>  
  29.         /// <returns>转换结果</returns>  
  30.         public static string GetUpperChineseSpell(string strText)  
  31.         {  
  32.             return GetChineseSpell(strText).ToUpper();  
  33.         }  
  34.         /// <summary>  
  35.         /// 获取单个汉字的首拼音  
  36.         /// </summary>  
  37.         /// <param name="myChar">需要转换的字符</param>  
  38.         /// <returns>转换结果</returns>  
  39.         public static string getSpell(string myChar)  
  40.         {  
  41.             byte[] arrCN = System.Text.Encoding.Default.GetBytes(myChar);  
  42.             if (arrCN.Length > 1)  
  43.             {  
  44.                 int area = (short)arrCN[0];  
  45.                 int pos = (short)arrCN[1];  
  46.                 int code = (area << 8) + pos;  
  47.                 int[] areacode = { 45217, 45253, 45761, 46318, 46826, 47010, 47297, 47614, 48119, 48119, 49062, 49324, 49896, 50371, 50614, 50622, 50906, 51387, 51446, 52218, 52698, 52698, 52698, 52980, 53689, 54481 };  
  48.                 for (int i = 0; i < 26; i++)  
  49.                 {  
  50.                     int max = 55290;  
  51.                     if (i != 25) max = areacode[i + 1];  
  52.                     if (areacode[i] <= code && code < max)  
  53.                     {  
  54.                         return System.Text.Encoding.Default.GetString(new byte[] { (byte)(65 + i) });  
  55.                     }  
  56.                 }  
  57.                 return "_";  
  58.             }  
  59.             else return myChar;  
  60.         }  
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值