C#取汉字首字母

001#region 取中文首字母
002public static string GetFirstLetter(string paramChinese)
003{
004    string strTemp = "";
005    int iLen = paramChinese.Length;
006    int i = 0;
007 
008    for (i = 0; i <= iLen - 1; i++)
009    {
010        strTemp += GetCharSpellCode(paramChinese.Substring(i, 1));
011    }
012 
013    return strTemp;
014 
015}
016 
017/// <summary>
018/// 得到一个汉字的拼音第一个字母,如果是一个英文字母则直接返回大写字母
019/// </summary>
020/// <param name="CnChar">单个汉字</param>
021/// <returns>单个大写字母</returns>
022private static string GetCharSpellCode(string paramChar)
023{
024    long iCnChar;
025 
026    byte[] ZW = System.Text.Encoding.Default.GetBytes(paramChar);
027 
028    //如果是字母,则直接返回
029    if (ZW.Length == 1)
030    {
031        return paramChar.ToUpper();
032    }
033    else
034    {
035        // get the array of byte from the single char
036        int i1 = (short)(ZW[0]);
037        int i2 = (short)(ZW[1]);
038        iCnChar = i1 * 256 + i2;
039    }
040 
041    //expresstion
042    //table of the constant list
043    // 'A'; //45217..45252
044    // 'B'; //45253..45760
045    // 'C'; //45761..46317
046    // 'D'; //46318..46825
047    // 'E'; //46826..47009
048    // 'F'; //47010..47296
049    // 'G'; //47297..47613
050 
051    // 'H'; //47614..48118
052    // 'J'; //48119..49061
053    // 'K'; //49062..49323
054    // 'L'; //49324..49895
055    // 'M'; //49896..50370
056    // 'N'; //50371..50613
057    // 'O'; //50614..50621
058    // 'P'; //50622..50905
059    // 'Q'; //50906..51386
060 
061    // 'R'; //51387..51445
062    // 'S'; //51446..52217
063    // 'T'; //52218..52697
064    //没有U,V
065    // 'W'; //52698..52979
066    // 'X'; //52980..53640
067    // 'Y'; //53689..54480
068    // 'Z'; //54481..55289
069 
070    // iCnChar match the constant
071    if ((iCnChar >= 45217) && (iCnChar <= 45252))
072    {
073        return "A";
074    }
075    else if ((iCnChar >= 45253) && (iCnChar <= 45760))
076    {
077        return "B";
078    }
079    else if ((iCnChar >= 45761) && (iCnChar <= 46317))
080    {
081        return "C";
082    }
083    else if ((iCnChar >= 46318) && (iCnChar <= 46825))
084    {
085        return "D";
086    }
087    else if ((iCnChar >= 46826) && (iCnChar <= 47009))
088    {
089        return "E";
090    }
091    else if ((iCnChar >= 47010) && (iCnChar <= 47296))
092    {
093        return "F";
094    }
095    else if ((iCnChar >= 47297) && (iCnChar <= 47613))
096    {
097        return "G";
098    }
099    else if ((iCnChar >= 47614) && (iCnChar <= 48118))
100    {
101        return "H";
102    }
103    else if ((iCnChar >= 48119) && (iCnChar <= 49061))
104    {
105        return "J";
106    }
107    else if ((iCnChar >= 49062) && (iCnChar <= 49323))
108    {
109        return "K";
110    }
111    else if ((iCnChar >= 49324) && (iCnChar <= 49895))
112    {
113        return "L";
114    }
115    else if ((iCnChar >= 49896) && (iCnChar <= 50370))
116    {
117        return "M";
118    }
119 
120    else if ((iCnChar >= 50371) && (iCnChar <= 50613))
121    {
122        return "N";
123    }
124    else if ((iCnChar >= 50614) && (iCnChar <= 50621))
125    {
126        return "O";
127    }
128    else if ((iCnChar >= 50622) && (iCnChar <= 50905))
129    {
130        return "P";
131    }
132    else if ((iCnChar >= 50906) && (iCnChar <= 51386))
133    {
134        return "Q";
135    }
136    else if ((iCnChar >= 51387) && (iCnChar <= 51445))
137    {
138        return "R";
139    }
140    else if ((iCnChar >= 51446) && (iCnChar <= 52217))
141    {
142        return "S";
143    }
144    else if ((iCnChar >= 52218) && (iCnChar <= 52697))
145    {
146        return "T";
147    }
148    else if ((iCnChar >= 52698) && (iCnChar <= 52979))
149    {
150        return "W";
151    }
152    else if ((iCnChar >= 52980) && (iCnChar <= 53688))
153    {
154        return "X";
155    }
156    else if ((iCnChar >= 53689) && (iCnChar <= 54480))
157    {
158        return "Y";
159    }
160    else if ((iCnChar >= 54481) && (iCnChar <= 55289))
161    {
162        return "Z";
163    }
164    else return ("?");
165}
166 
167#endregion

转载于:https://www.cnblogs.com/yexinw/archive/2011/07/15/2107487.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值