C# のChar.IsDigit()
との違いは何ですか?Char.IsNumber()
ベストアンサー1
Char.IsDigit()
は のサブセットですChar.IsNumber()
。
数字ではないが「数値」である文字には、上付き文字の 2 と 3 (「²」と「³」) である 0x00b2 と 0x00b3 や、「¼」、「½」、「¾」などの分数を表すグリフなどがあります。
IsDigit()
返される文字の中には、ASCII 範囲 0x30 から 0x39 に含まれない文字がかなりあることに注意してくださいtrue
。たとえば、タイ語の数字文字 '๐' '๑' '๒' '๓' '๔' '๕' '๖' '๗' '๘' '๙' などです。
このコード スニペットは、どのコード ポイントが異なるかを示します。
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));
}
}
}