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

本文介绍了一个使用正则表达式判断字符是否为汉字的方法,并实现了一个将包含汉字的字符串转化为相应首字母字符串的功能。通过解析汉字的Unicode编码,将每个汉字字符转换为其对应的首字母。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值