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

//用正则表达式判断字符是不是汉字
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;
}
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值