获取汉字拼音的首字母是一个在做项目的过程中经常需要用到的功能,今天我们主要来探讨下C# 获取汉字的拼音首字母
/// <summary>
/// 在指定的字符串列表CnStr中检索符合拼音索引字符串
/// </summary>
/// <param name=\"CnStr\">汉字字符串</param>
/// <returns>相对应的汉语拼音首字母串</returns>
public static string GetSpellCode(string CnStr) {
string strTemp=\"\";
int iLen=CnStr.Length;
int i=0;
for (i=0;i<=iLen-1;i++) {
strTemp+=GetCharSpellCode(CnStr.Substring(i,1));
}
return strTemp;
}
/// <summary>
/// 得到一个汉字的拼音第一个字母,如果是一个英文字母则直接返回大写字母
/// </summary>
/// <param name=\"CnChar\">单个汉字</param>
/// <returns>单个大写字母</returns>
private static string GetCharSpellCode(string CnChar) {
long iCnChar;
byte[] ZW = System.Text.Encoding.Default.GetBytes(CnChar);
//如果是字母,则直接返回
if (ZW.Length==1) {
return CnChar.ToUpper();
}
else {
// get the array of byte from the single char
int i1 = (short)(ZW[0]);
int i2 = (short)(ZW[1]);
iCnChar = i1*256+i2;
}
// iCnChar match the constant
if ((iCnChar>=45217) && (iCnChar<=45252)) {
return \"A\";
}
else if ((iCnChar>=45253) && (iCnChar<=45760)) {
return \"B\";
} else if ((iCnChar>=45761) && (iCnChar<=46317)) {
return \"C\";
} else if ((iCnChar>=46318) && (iCnChar<=46825)) {
return \"D\";
} else if ((iCnChar>=46826) && (iCnChar<=47009)) {
return \"E\";
} else if ((iCnChar>=47010) && (iCnChar<=47296)) {
return \"F\";
} else if ((iCnChar>=47297) && (iCnChar<=47613)) {
return \"G\";
} else if ((iCnChar>=47614) && (iCnChar<=48118)) {
return \"H\";
} else if ((iCnChar>=48119) && (iCnChar<=49061)) {
return \"J\";
} else if ((iCnChar>=49062) && (iCnChar<=49323)) {
return \"K\";
} else if ((iCnChar>=49324) && (iCnChar<=49895)) {
return \"L\";
} else if ((iCnChar>=49896) && (iCnChar<=50370)) {
return \"M\";
}else if ((iCnChar>=50371) && (iCnChar<=50613)) {
return \"N\";
} else if ((iCnChar>=50614) && (iCnChar<=50621)) {
return \"O\";
} else if ((iCnChar>=50622) && (iCnChar<=50905)) {
return \"P\";
} else if ((iCnChar>=50906) && (iCnChar<=51386)) {
return \"Q\";
} else if ((iCnChar>=51387) && (iCnChar<=51445)) {
return \"R\";
} else if ((iCnChar>=51446) && (iCnChar<=52217)) {
return \"S\";
} else if ((iCnChar>=52218) && (iCnChar<=52697)) {
return \"T\";
} else if ((iCnChar>=52698) && (iCnChar<=52979)) {
return \"W\";
} else if ((iCnChar>=52980) && (iCnChar<=53640)) {
return \"X\";
} else if ((iCnChar>=53689) && (iCnChar<=54480)) {
return \"Y\";
} else if ((iCnChar>=54481) && (iCnChar<=55289)) {
return \"Z\";
} else
return (\"?\");
}
以上所述就是本文的全部内容了,希望大家能够喜欢。
本文地址:https://www.stayed.cn/item/3626
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我