问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何判断C#字符串是全角还是半角

发布网友 发布时间:2022-05-16 00:47

我来回答

1个回答

热心网友 时间:2023-10-05 10:44

全角是指用二个字节来表示的一个字符
半角是用一个字节来表示的一个字符

这样的话我们就可以用string.length 和System.text.Encoding.Default.GetByteCount来判断

其中string.length表示字符串的字符数,
System.text.Encoding.Default.GetByteCount表示字符串的字节数。

将全角的变为半角
string s="GBJ1—86";
char[] c=s.ToCharArray();
for (int i=0;i<c.Length;i++)
{
byte[] b=System.Text.Encoding.Unicode.GetBytes(c,i,1);
if (b.Length==2)
{
if (b[1]==255)
{
b[0]=(byte)(b[0]+32);
b[1]=0;
c[i]=System.Text.Encoding.Unicode.GetChars(b)[0];
}
}
}
//半角
string news=new string(c);

把字母,数字由半角转化为全角
public string ChangeStr( string str)
{
char[] c=str.ToCharArray();
for (int i=0;i<c.Length;i++)
{
byte[] b=System.Text.Encoding.Unicode.GetBytes(c,i,1);
if (b.Length==2)
{
if (b[1]==0)
{
b[0]=(byte)(b[0]-32);
b[1]=255;
c[i]=System.Text.Encoding.Unicode.GetChars(b)[0];
}
}
}
//半角
string strNew=new string(c);
return strNew;
}

判断的方法一:
代码测试报告:只能对单个字符进行判断,如果出现"23" 判断结果是半角,忽略了后面的全角,如果需要判断就要遍历证字符串
string s = null;

s = "A";
MessageBox.Show(((s[0] > 255) ? "全角" : "半角") + " ASCII of " + Convert.ToInt32(s[0]).ToString("x").ToUpper());

s = "A";
MessageBox.Show(((s[0] > 255) ? "全角" : "半角") + " ASCII of " + Convert.ToInt32(s[0]).ToString("x").ToUpper());

//中文的Unicode大概是从4E00 到 9FA0,所以上例一个是0x41 一个是0xFF21

判断的方法二:
代码测试报告:只能对单个字符进行判断,如果出现"23" 判断结果是半角,忽略了后面的全角,如果需要判断就要遍历证字符串
if (checkString.Length == Encoding.Default.GetByteCount(checkString))
{
return true;
}
else
{
return false;
}

全角如下:
if (2 * checkString.Length == Encoding.Default.GetByteCount(checkString))
{
return true;
}
else
{
return false;
}
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
交通工程好考公务员吗 交通工程类考公时包括哪些专业 交通工程专业的能报考什么样的公务员 交通工程专业往哪些方向考公务员 交通工程可以考公务员有哪些岗位 我专业交通工程。能考什么类型的公务员 支付宝怎么关联另一个账号 支付宝怎么关联另一个支付宝 支付宝关联账号在哪里?怎么添加? 京东买手机发票可以开别人名字吗 安卓开发中的内存溢出怎样解决 手机上网内存溢出怎么办? 披萨店开业如何提升人气 千禧柿子储存时可不可以见风? 有可以域名注册的邮箱吗?哪位能给介绍一款 苹果手机账户设置个人信息不正确怎么办? 为什么苹果官网中找不到管理账户呢? cm是什么的简称 苹果官网管理账户怎么打不开,只要是关于苹果ID的官网在浏览器上都打不开进不去? “王者荣耀”一天能赚多少钱 王者荣耀腾讯一天赚多少钱 王者荣耀真的一天赚一亿吗? 王者荣耀一天一般可以赚多少金币,那个双倍金币卡什么什么东西,上限增加吗 周鸿祎说王者荣耀一天赚一亿是真的吗? 玩王者荣耀赚了多少钱 王者荣耀每天赚多少钱 王者荣耀一天最多能赚多少金币 vⅰvo手机怎么把粤康码截图发给朋友? 同时用了广发尊享分期消费卡和乐享财智金、会影响征信吗?会影响房贷审批吗? 尊享财智金提前结清后可以申请房贷吗 手机内存溢出怎么办? C#如何判断一个字符是全角的还是半角的 在vb中如何区分全角或半角 android内存溢出的几种原因和解决办法 我手机上QQ 说 因为内存溢出此应用发生不可预测的退出 怎么办? 手机重启问题? 玩摄影的朋友请进(水滴特写方面) 手机JAVA游戏,内存溢出 我的5130XM都是内存溢出。请问,还有其他办法可以让我手机可以玩这款游戏不?或者说,可以不可以把内存... jQuery怎么判断全角数字的大小?怎么判断一个数字是全角的还是半角... 安装手机浏览器出现“应用内存溢出而异常退出”怎么办? 怎么可以用别人的可以查到别人的抖音号- 问一问 不是自己的微信好友知道他的怎么查抖音号 excel工作表中的数据,以“班级”为分类字段,将各科成绩进行“平均值”分类汇总,求步骤!结果如第二张图 求一张高二理科班的成绩单 班里有82个人 年级不到1500 每科后面要有年级名次。。。 谢啦!!! word2003中怎么改变目录中的页码 怎么用别人的找到他的抖音号? 高中和初中各学科有什么区别 初中和高中的区别和联系? 贵州省威宁县第三中学高二期末统考成绩表