首页 新闻 会员 周边

请问C#如何判断一个字符是全角的还是半角的?

0
[已解决问题] 解决于 2012-02-27 11:24

注意,不是判断中英文,因为英文全角好像也占2个字节..

知道的朋友请给代码,谢谢 !

hexllo的主页 hexllo | 菜鸟二级 | 园豆:318
提问于:2012-02-01 09:49
< >
分享
最佳答案
0

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

硕硕 | 菜鸟二级 |园豆:212 | 2012-02-01 17:06
其他回答(3)
0

通过正则表达式根据字符编码进行判断。

半角空格为32,全角空格为12288
半角字符为33-126,全角字符为65281-65374

dudu | 园豆:30948 (高人七级) | 2012-02-01 10:15
0

C#没有,VB有:(需要先添加Microsoft.VisualBasic.dll)

        static void Main(string[] args)
{
string s = "AABb+-×、/";
for (int i = 0; i < s.Length; i++)
{
var str = s[i].ToString();
var fullWidth = Microsoft.VisualBasic.Strings.StrConv(str, VbStrConv.Wide);
Console.WriteLine("{0}是{1}字符", str, str.Equals(fullWidth) ? "全角" : "半角");
}
Console.ReadLine();
}

Microsoft.VisualBasic.Strings.StrConv(str, VbStrConv.Wide)是把str这个字符串转成对应的全角字符,然后再与它本身比较。VbStrConv是个enum,对应的VbStrConv.Narrow就是转成半角字符。注意汉字的全角和半角是相同的。

水牛刀刀 | 园豆:6350 (大侠五级) | 2012-02-01 10:24
0

这个有点蛋疼,汗

咆哮的野猪 | 园豆:60 (初学一级) | 2012-02-01 10:36
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册