【转载】C#输入汉字字符串索引拼音的首字母

在做项目的时候,输入客户的名字,为了方便索引汉字字符串的拼音首字母,作助记码,于是到网上找了一下,还好,有个单个汉字的处理!为了答谢该网友!为了以后的网友,我做了汉字字符串的处理!

 

using System; 
using System.Drawing; 
using System.Collections; 
using System.ComponentModel; 
using System.Windows.Forms; 
using System.Data; 

namespace WinMarket 
{ 
    /// <summary> 
    /// Classfun 的摘要说明。 
    /// </summary> 
    public class Classfun 
    { 
        private string Capstr; 

        public Classfun() 
        { 
            // 
            // TODO: 在此处添加构造函数逻辑 
            // 
        } 
        public string ChineseCap(string ChineseStr) 
        { 

            byte[] ZW = new byte[2]; 
            long ChineseStr_int; 
            string CharStr, ChinaStr = ""; 
            for (int i = 0; i <= ChineseStr.Length - 1; i++) 
            { 
                CharStr = ChineseStr.Substring(i, 1).ToString(); 
                ZW = System.Text.Encoding.Default.GetBytes(CharStr); 
                // 得到汉字符的字节数组 
                if (ZW.Length == 2) 
                { 
                    int i1 = (short)(ZW[0]); 
                    int i2 = (short)(ZW[1]); 
                    ChineseStr_int = i1 * 256 + i2; 
                    //table of the constant list 
                    // @#A@#; //45217..45252 
                    // @#B@#; //45253..45760 
                    // @#C@#; //45761..46317 
                    // @#D@#; //46318..46825 
                    // @#E@#; //46826..47009 
                    // @#F@#; //47010..47296 
                    // @#G@#; //47297..47613 

                    // @#H@#; //47614..48118 
                    // @#J@#; //48119..49061 
                    // @#K@#; //49062..49323 
                    // @#L@#; //49324..49895 
                    // @#M@#; //49896..50370 
                    // @#N@#; //50371..50613 
                    // @#O@#; //50614..50621 
                    // @#P@#; //50622..50905 
                    // @#Q@#; //50906..51386 

                    // @#R@#; //51387..51445 
                    // @#S@#; //51446..52217 
                    // @#T@#; //52218..52697 
                    //没有U,V 
                    // @#W@#; //52698..52979 
                    // @#X@#; //52980..53640 
                    // @#Y@#; //53689..54480 
                    // @#Z@#; //54481..55289 

                    if ((ChineseStr_int >= 45217) && (ChineseStr_int <= 45252)) 
                    { 
                        ChinaStr = "A"; 
                    } 
                    else if ((ChineseStr_int >= 45253) && (ChineseStr_int <= 45760)) 
                    { 
                        ChinaStr = "B"; 
                    } 
                    else if ((ChineseStr_int >= 45761) && (ChineseStr_int <= 46317)) 
                    { 
                        ChinaStr = "C"; 

                    } 
                    else if ((ChineseStr_int >= 46318) && (ChineseStr_int <= 46825)) 
                    { 
                        ChinaStr = "D"; 
                    } 
                    else if ((ChineseStr_int >= 46826) && (ChineseStr_int <= 47009)) 
                    { 
                        ChinaStr = "E"; 
                    } 
                    else if ((ChineseStr_int >= 47010) && (ChineseStr_int <= 47296)) 
                    { 
                        ChinaStr = "F"; 
                    } 
                    else if ((ChineseStr_int >= 47297) && (ChineseStr_int <= 47613)) 
                    { 
                        ChinaStr = "G"; 
                    } 
                    else if ((ChineseStr_int >= 47614) && (ChineseStr_int <= 48118)) 
                    { 

                        ChinaStr = "H"; 
                    } 

                    else if ((ChineseStr_int >= 48119) && (ChineseStr_int <= 49061)) 
                    { 
                        ChinaStr = "J"; 
                    } 
                    else if ((ChineseStr_int >= 49062) && (ChineseStr_int <= 49323)) 
                    { 
                        ChinaStr = "K"; 
                    } 
                    else if ((ChineseStr_int >= 49324) && (ChineseStr_int <= 49895)) 
                    { 
                        ChinaStr = "L"; 
                    } 
                    else if ((ChineseStr_int >= 49896) && (ChineseStr_int <= 50370)) 
                    { 
                        ChinaStr = "M"; 
                    } 

                    else if ((ChineseStr_int >= 50371) && (ChineseStr_int <= 50613)) 
                    { 
                        ChinaStr = "N"; 

                    } 
                    else if ((ChineseStr_int >= 50614) && (ChineseStr_int <= 50621)) 
                    { 
                        ChinaStr = "O"; 
                    } 
                    else if ((ChineseStr_int >= 50622) && (ChineseStr_int <= 50905)) 
                    { 
                        ChinaStr = "P"; 

                    } 
                    else if ((ChineseStr_int >= 50906) && (ChineseStr_int <= 51386)) 
                    { 
                        ChinaStr = "Q"; 

                    } 

                    else if ((ChineseStr_int >= 51387) && (ChineseStr_int <= 51445)) 
                    { 
                        ChinaStr = "R"; 
                    } 
                    else if ((ChineseStr_int >= 51446) && (ChineseStr_int <= 52217)) 
                    { 
                        ChinaStr = "S"; 
                    } 
                    else if ((ChineseStr_int >= 52218) && (ChineseStr_int <= 52697)) 
                    { 
                        ChinaStr = "T"; 
                    } 
                    else if ((ChineseStr_int >= 52698) && (ChineseStr_int <= 52979)) 
                    { 
                        ChinaStr = "W"; 
                    } 
                    else if ((ChineseStr_int >= 52980) && (ChineseStr_int <= 53640)) 
                    { 
                        ChinaStr = "X"; 
                    } 
                    else if ((ChineseStr_int >= 53689) && (ChineseStr_int <= 54480)) 
                    { 
                        ChinaStr = "Y"; 
                    } 
                    else if ((ChineseStr_int >= 54481) && (ChineseStr_int <= 55289)) 
                    { 
                        ChinaStr = "Z"; 
                    } 

                } 
                else 
                { 
                    Capstr = ChineseStr; 
                    break; 
                } 

                Capstr = Capstr + ChinaStr; 
            } 

            return Capstr; 

        } 

    } 
}
posted @ 2010-06-01 21:19  方子  阅读(444)  评论(0编辑  收藏  举报