C#取汉字首字母

作者:互联网   出处:控件中国网   2014-11-05 19:05:28   阅读:1

C#取汉字首字母

view sourceprint?001 #region 取中文首字母 

002 public 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>  

022 private 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

 

Copyright© 2006-2015 ComponentCN.com all rights reserved.重庆磐岩科技有限公司(控件中国网) 版权所有 渝ICP备12000264号 法律顾问:元炳律师事务所
客服软件
live chat