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進数の数字かどうかを簡単に判定できます。ユーザー入力のバリデーションや文字列中の数字抽出など、さまざまな場面で活用できる便利なメソッドなので、ぜひ覚えておきましょう。
-
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 {
-
C#のChar.IsSymbol()メソッドとは?文字が記号かどうかを判定する方法を解説
Char.IsSymbol()メソッドとはC#のChar.IsSymbol()メソッドは、指定された文字列内の指定位置にある文字が、Unicodeの「記号(Symbol)」カテゴリに分類されているかどうかを判定するメソッドです。戻り値はbool型で、記号であればtrue、そうでなければfalseを返します。判定対象となるのは、数学記号(+、=など)、通貨記号($、¥など)、修飾記号、その他の記号といったUnicode記号カテゴリに属する文字です。構文public static bool IsSymbol (string str, int index);パラメータstr:評価対象の文字列inde