您的位置:首页 > 编程语言 > C#

C#中判断字符串中是否有汉字及将汉字转化为字母缩写

2014-01-12 17:38 375 查看
//用正则表达式判断字符是不是汉字
public static bool checkStringChineseReg(string text)
{
bool res = false;
if (Regex.IsMatch(text, @"[\u4e00-\u9fbb]+$"))
{
res = true;
}
return res;
}

//将带有汉字的字符串转化为相应的首字母字符串
public static string getSpells(string input)
{
int len = input.Length;
string reVal = "";
for (int i = 0; i < len; i++)
{
reVal += getSpell(input.Substring(i, 1));
}
return reVal;
}

//将汉字字符转化为相应的首字母,若本身为英文字符则返回
public static string getSpell(string cn)
{
byte[] arrCn = Encoding.Default.GetBytes(cn);
if (arrCn.Length > 1)
{
int area = (short)arrCn[0];
int pos = (short)arrCn[1];
int code = (area << 8) + pos;
int[] areacode = { 45217, 45253, 45761, 46318, 46826, 47010, 47297,
47614, 48119, 48119, 49062, 49324, 49896, 50371,
50614, 50622, 50906, 51387, 51446, 52218, 52698,
52698, 52698, 52980, 53689, 54481};

for (int i = 0; i < 26; i++)
{
int max = 55290;
if (i != 25)
{
max = areacode[i + 1];
}
if (areacode[i] <= code && code < max)
{
return Encoding.Default.GetString(new byte[]{(byte)(65+i)});
}
}
return "?";
}
else
{
return cn;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: