Char.IsDigit与Char.IsNumber的区别
Posted micro-chen
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Char.IsDigit与Char.IsNumber的区别相关的知识,希望对你有一定的参考价值。
需要判断Char是否为数字,查看了下MSDN,发现有三种方法:
Char.IsDigit (aChar) 指示指定字符串中位于指定位置处的字符是否属于十进制数字类别
Char.IsNumber(aChar) 指示指定字符串中位于指定位置的字符是否属于数字类别
aChar>=‘0‘&&aChar<=‘9‘ 判断aChar是否位于‘0’到‘9’之前 等同于第一种
用.NET Reflector 查看其实现代码:
- if (!IsLatin1(c))
- return CheckNumber(CharUnicodeInfo.GetUnicodeCategory(c));
- if (!IsAscii(c))
- return CheckNumber(GetLatin1UnicodeCategory(c));
- return ((c >= ‘0‘) && (c <= ‘9‘));
- if (!IsLatin1(c))
- return (CharUnicodeInfo.GetUnicodeCategory(c) == UnicodeCategory.DecimalDigitNumber);
- return ((c >= ‘0‘) && (c <= ‘9‘));
Char.IsNumber 多了一步检查ASCII码。。。
以上是关于Char.IsDigit与Char.IsNumber的区别的主要内容,如果未能解决你的问题,请参考以下文章