一尘不染

C#中Char.IsDigit()和Char.IsNumber()之间的区别

c#

Char.IsDigit()Char.IsNumber()C#和有什么不一样?


阅读 333

收藏
2020-05-19

共1个答案

一尘不染

Char.IsDigit()是的子集Char.IsNumber()

一些“数字”字符而不是数字,包括0x00b2和0x00b3,它们带有2和3的上标(“²”和“³”)以及作为分数的字形,例如“¼”,“½”和“¾” ‘。

请注意,有很多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));
        }
    }
}
2020-05-19