C#获取汉字首字母

代码
  1      ///<summary> 
2 /// 在指定的字符串列表CnStr中检索符合拼音索引字符串
3 ///</summary>
4 ///<param name="CnStr">汉字字符串</param>
5 ///<returns>相对应的汉语拼音首字母串</returns>
6 public static string GetSpellCode(string CnStr)
7 {
8 string strTemp="";
9 int iLen=CnStr.Length;
10 int i=0;
11
12 for (i=0;i<=iLen-1;i++)
13 {
14 strTemp+=GetCharSpellCode(CnStr.Substring(i,1));
15 }
16
17 return strTemp;
18 }
19
20
21 ///<summary>
22 /// 得到一个汉字的拼音第一个字母,如果是一个英文字母则直接返回大写字母
23 ///</summary>
24 ///<param name="CnChar">单个汉字</param>
25 ///<returns>单个大写字母</returns>
26 private static string GetCharSpellCode(string CnChar)
27 {
28 long iCnChar;
29
30 byte[] ZW = System.Text.Encoding.Default.GetBytes(CnChar);
31
32 //如果是字母,则直接返回
33 if (ZW.Length==1)
34 {
35 return CnChar.ToUpper();
36 }
37 else
38 {
39 // get the array of byte from the single char
40 int i1 = (short)(ZW[0]);
41 int i2 = (short)(ZW[1]);
42 iCnChar = i1*256+i2;
43 }
44
45 //expresstion
46 //table of the constant list
47 // 'A'; //45217..45252
48 // 'B'; //45253..45760
49 // 'C'; //45761..46317
50 // 'D'; //46318..46825
51 // 'E'; //46826..47009
52 // 'F'; //47010..47296
53 // 'G'; //47297..47613
54
55 // 'H'; //47614..48118
56 // 'J'; //48119..49061
57 // 'K'; //49062..49323
58 // 'L'; //49324..49895
59 // 'M'; //49896..50370
60 // 'N'; //50371..50613
61 // 'O'; //50614..50621
62 // 'P'; //50622..50905
63 // 'Q'; //50906..51386
64
65 // 'R'; //51387..51445
66 // 'S'; //51446..52217
67 // 'T'; //52218..52697
68 //没有U,V
69 // 'W'; //52698..52979
70 // 'X'; //52980..53640
71 // 'Y'; //53689..54480
72 // 'Z'; //54481..55289
73
74 // iCnChar match the constant
75 if ((iCnChar>=45217) && (iCnChar<=45252))
76 {
77 return "A";
78 }
79 else if ((iCnChar>=45253) && (iCnChar<=45760))
80 {
81 return "B";
82 }
83 else if ((iCnChar>=45761) && (iCnChar<=46317))
84 {
85 return "C";
86 }
87 else if ((iCnChar>=46318) && (iCnChar<=46825))
88 {
89 return "D";
90 }
91 else if ((iCnChar>=46826) && (iCnChar<=47009))
92 {
93 return "E";
94 }
95 else if ((iCnChar>=47010) && (iCnChar<=47296))
96 {
97 return "F";
98 }
99 else if ((iCnChar>=47297) && (iCnChar<=47613))
100 {
101 return "G";
102 }
103 else if ((iCnChar>=47614) && (iCnChar<=48118))
104 {
105 return "H";
106 }
107 else if ((iCnChar>=48119) && (iCnChar<=49061))
108 {
109 return "J";
110 }
111 else if ((iCnChar>=49062) && (iCnChar<=49323))
112 {
113 return "K";
114 }
115 else if ((iCnChar>=49324) && (iCnChar<=49895))
116 {
117 return "L";
118 }
119 else if ((iCnChar>=49896) && (iCnChar<=50370))
120 {
121 return "M";
122 }
123
124 else if ((iCnChar>=50371) && (iCnChar<=50613))
125 {
126 return "N";
127 }
128 else if ((iCnChar>=50614) && (iCnChar<=50621))
129 {
130 return "O";
131 }
132 else if ((iCnChar>=50622) && (iCnChar<=50905))
133 {
134 return "P";
135 }
136 else if ((iCnChar>=50906) && (iCnChar<=.51386))
137 {
138 return "Q";
139 }
140 else if ((iCnChar>=51387) && (iCnChar<=51445))
141 {
142 return "R";
143 }
144 else if ((iCnChar>=51446) && (iCnChar<=52217))
145 {
146 return "S";
147 }
148 else if ((iCnChar>=52218) && (iCnChar<=52697))
149 {
150 return "T";
151 }
152 else if ((iCnChar>=52698) && (iCnChar<=52979))
153 {
154 return "W";
155 }
156 else if ((iCnChar>=52980) && (iCnChar<=53640))
157 {
158 return "X";
159 }
160 else if ((iCnChar>=53689) && (iCnChar<=54480))
161 {
162 return "Y";
163 }
164 else if ((iCnChar>=54481) && (iCnChar<=55289))
165 {
166 return "Z";
167 }
168 else return ("?");
169 }

 

posted @ 2011-11-24 15:14  幸福~伞  阅读(320)  评论(0编辑  收藏  举报