在C#中,Char.IsDigit()
和Char.IsNumber()
有什么不同?
发布于 2008-10-23 04:39:28
Char.IsDigit()
是Char.IsNumber()
的一个子集。
一些‘数字’但不是数字的字符包括上标为2和3的0x00b2和0x00b3 ('²‘和'³'),以及作为分数的字形,如’²‘、’²‘和’²‘。
请注意,IsDigit()
为其返回true
的很多字符不在0x30到0x39的ASCII码范围内,例如这些泰语数字字符:‘๐’‘๑’‘๒’‘๓’‘๔’‘๕’‘๖’‘๗’‘๘’‘๙’。
这段代码告诉您哪些代码点不同:
static private void test()
{
for (int i = 0; i <= 0xffff; ++i)
{
char c = (char) i;
if (Char.IsDigit( c) != Char.IsNumber( c)) {
Console.WriteLine( "Char value {0:x} IsDigit() = {1}, IsNumber() = {2}", i, Char.IsDigit( c), Char.IsNumber( c));
}
}
}
https://stackoverflow.com/questions/228532
复制相似问题