zoukankan      html  css  js  c++  java
  • [转]得到汉字拼音首字母

    // <summary> 
            /// 得到汉字拼音首字母 
            /// </summary> 
            /// <param name="chineseStr"></param> 
            /// <returns></returns> 
            public static string HZToPYSimple(string chineseStr) 
            { 
                try 
                { 
                    byte[] b = System.Text.UnicodeEncoding.Default.GetBytes(chineseStr); 
                    string res = ""; 
                    for (int i = 0; i < b.Length; ) 
                    { 
                        if (i == b.Length - 1) 
                        { 
                            if (char.IsNumber((char)b[i]) || char.IsLetter((char)b[i])) 
                                res += (char)b[i++]; 
                            else 
                            { 
                                i++; 
                                continue; 
                            } 
                        } 
                        else if (Convert.ToByte(b[i]) > 127)//汉字 
                        { 
                            string tmp = System.Text.UnicodeEncoding.Default.GetString(b, i, 2); 
                            tmp = HZToCode(tmp, "拼"); 
                            if (tmp.Length > 0) 
                                res += tmp[0]; 
                            i += 2; 
                        } 
                        else 
                        { 
                            if (char.IsNumber((char)b[i]) || char.IsLetter((char)b[i])) 
                                res += (char)b[i++]; 
                            else 
                            { 
                                i++; 
                                continue; 
                            } 
                        } 
                    } 
                    return res.ToUpper(); 
                } 
                catch (Exception ex) 
                { 
                    throw new Exception("错误:", ex); 
                } 
            }

    /// <summary> 
           /// 转换 
           /// </summary> 
           /// <param name="chineseStr"></param> 
           /// <param name="?"></param> 
           /// <returns></returns> 
           public static string HZToCode(string chineseStr,)//typeStr是指拼音还是五笔码 
           { 
               try 
               { 
                   string resultStr = ""; 
                   byte[] arrCN = Encoding.Default.GetBytes(chineseStr); 
                   if (arrCN.Length > 1) 
                   { 
                       int area = (short)arrCN[0]; 
                       int pos = (short)arrCN[1]; 
                       int code = (area << 8) + pos; 
                       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 }; 
                       for (int i = 0; i < 26; i++) 
                       { 
                           int max = 55290; 
                           if (i != 25) max = areacode[i + 1]; 
                           if (areacode[i] <= code && code < max) 
                           { 
                               resultStr = Encoding.Default.GetString(new byte[] { (byte)(65 + i) }); 
                               break; 
                           } 
                       } 
                   }

                   return resultStr; 
               } 
               catch (Exception ex) 
               { 
                   throw new Exception("错误:", ex); 
               } 
           }

  • 相关阅读:
    121. Best Time to Buy and Sell Stock
    70. Climbing Stairs
    647. Palindromic Substrings
    609. Find Duplicate File in System
    583. Delete Operation for Two Strings
    556 Next Greater Element III
    553. Optimal Division
    539. Minimum Time Difference
    537. Complex Number Multiplication
    227. Basic Calculator II
  • 原文地址:https://www.cnblogs.com/anduinlothar/p/2959324.html
Copyright © 2011-2022 走看看