Różnica między Char.IsDigit () i Char.IsNumber () w C#

Tak jak w tytule, jaka jest różnica między Char.IsDigit () i Char.IsNumber () w C#?

1 odpowiedź

Char.IsDigit () jest podzbiorem Char.IsNumber ().

Niektóre znaki, które są „numeryczne”, ale nie zawierają cyfr, obejmują 0x00b2 i 0x00b3, które są w indeksie górnym 2 i 3 („²” i „³”) oraz ułamki takie jak: „¼”, „½” i „¾ „.

Warto podkreślić, że istnieje kilka znaków, które IsDigit () zwraca true, które nie są w zakresie ASCII od 0x30 do 0x39, takie jak te znaki cyfr tajlandzkich: „'” „๑” „๒” ” ๕ '' ๖ '' ๗ '' ๘ '' ๙ '. Ten fragment kodu informuje, które punkty kodowe się różnią:

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));
        }
    }
}

Twoja odpowiedź

Zaloguj się aby odpowiedzieć.

Operiada

Operiada to polskojęzyczne forum informatyczne działające na zasadzie pytań i odpowiedzi.

Obserwowane tagi

Zaloguj się aby obserwować tagi.