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