C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#のChar.IsDigit()メソッドとは?文字が数字かどうかを判定する方法

C#のChar.IsDigit()メソッドは、指定されたUnicode文字が「10進数の数字(decimal digit)」として分類されるかどうかを判定するためのメソッドです。文字が0〜9の数字に該当する場合はtrueを返し、それ以外の場合はfalseを返します。

このメソッドは静的(static)メソッドであるため、インスタンスを作成せずにCharクラスから直接呼び出すことができます。

構文

Char.IsDigit()メソッドの構文は以下の通りです。

public static bool IsDigit (char ch);

引数chには、判定対象となるUnicode文字を指定します。戻り値はbool型で、文字が10進数の数字であればtrue、そうでなければfalseとなります。

使用例1:英字を判定する場合

まず、英字の文字「g」を判定する例を見てみましょう。

using System;

public class Demo {
    public static void Main(){
        bool res;
        char val = 'g';
        
        Console.WriteLine("Value = " + val);
        res = Char.IsDigit(val);
        Console.WriteLine("Is the value a digit? = " + res);
    }
}

実行結果

Value = g
Is the value a digit? = False

「g」は数字ではないため、結果はFalse(false)となりました。

使用例2:数字を判定する場合

次に、数字の文字「2」を判定する例を見てみましょう。

using System;

public class Demo {
    public static void Main(){
        bool res;
        char val = '2';
        
        Console.WriteLine("Value = " + val);
        res = Char.IsDigit(val);
        Console.WriteLine("Is the value a digit? = " + res);
    }
}

実行結果

Value = 2
Is the value a digit? = True

「2」は10進数の数字に該当するため、結果はTrue(true)となりました。

Char.IsDigit()とChar.IsNumber()の違い

C#には似たメソッドとしてChar.IsNumber()がありますが、両者には以下のような違いがあります。

  • Char.IsDigit():Unicodeカテゴリ「Nd(Decimal Digit Number)」に分類される文字のみをtrueと判定します。具体的には「0」〜「9」や、全角数字「0」〜「9」などが該当します。
  • Char.IsNumber():「Nd」に加えて「Nl(Letter Number)」や「No(Other Number)」もtrueと判定します。たとえばローマ数字の「Ⅲ」なども該当します。

そのため、単純にアラビア数字(0〜9)かどうかだけを厳密に判定したい場合は、Char.IsDigit()を使用するのが適しています。

まとめ

Char.IsDigit()メソッドを使うことで、指定した文字が10進数の数字かどうかを簡単に判定できます。ユーザー入力のバリデーションや文字列中の数字抽出など、さまざまな場面で活用できる便利なメソッドなので、ぜひ覚えておきましょう。

  1. C#のChar.IsUpper()メソッドとは?大文字判定の使い方を解説

    概要C#のChar.IsUpper()メソッドは、指定されたUnicode文字が「大文字」に分類されるかどうかを判定するメソッドです。判定結果はbool型で返され、文字が大文字であればtrue、それ以外であればfalseを返します。構文public static bool IsUpper(char ch);パラメータchには、判定対象となるUnicode文字を指定します。戻り値文字が大文字の場合:trueそれ以外の場合:false使用例1:大文字を判定する場合まずは、大文字「H」を判定するサンプルコードを見てみましょう。using System; public class Demo {

  2. C#のChar.IsSymbol()メソッドとは?文字が記号かどうかを判定する方法を解説

    Char.IsSymbol()メソッドとはC#のChar.IsSymbol()メソッドは、指定された文字列内の指定位置にある文字が、Unicodeの「記号(Symbol)」カテゴリに分類されているかどうかを判定するメソッドです。戻り値はbool型で、記号であればtrue、そうでなければfalseを返します。判定対象となるのは、数学記号(+、=など)、通貨記号($、¥など)、修飾記号、その他の記号といったUnicode記号カテゴリに属する文字です。構文public static bool IsSymbol (string str, int index);パラメータstr:評価対象の文字列inde