用string.length 和System.text.Encoding.Default.GetByteCount来判断
其中string.length表示字符串的字符数,
System.text.Encoding.Default.GetByteCount表示字符串的字节数。
通过正则表达式根据字符编码进行判断。
半角空格为32,全角空格为12288
半角字符为33-126,全角字符为65281-65374
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就是转成半角字符。注意汉字的全角和半角是相同的。
这个有点蛋疼,汗