C# 文字列が数値かどうかを識別する

Minahil Noor 2023年10月12日
  1. Enumerable.All() メソッドを使用して、string が数値かどうかを識別する C# プログラム
  2. Regex.IsMatch() メソッドを使用して、string が数値かどうかを識別する C# プログラム
  3. 文字列Int32.TryParse() メソッドを使用して数値であるかどうかを識別する C# プログラム
  4. foreach ループを使用して string が数値であるかどうかを識別する C# プログラム
C# 文字列が数値かどうかを識別する

現実の問題を処理しているときに、入力を文字列として受け取り、それを整数として使用したいという問題に直面することがあります。これを可能にするには、入力された文字列が数値であるかどうかを常に確認する必要があります。

C# では、多くのメソッドを使用して、入力の文字列が数値かどうかを識別できます。この記事を最後まで読んでいる間に、これらの方法を発見します。

Enumerable.All() メソッドを使用して、string が数値かどうかを識別する C# プログラム

Enumerable.All() メソッドは LINQ に属しています。LINQ は C# の一部であり、さまざまなデータベースやデータソースへのアクセスに使用されます。このメソッドを変更して、string が数値であるかどうかを確認できます。char.IsDigit() メソッドをパラメータとして Enumerable.All() メソッドに渡します。

このメソッドを使用するための正しい構文は次のとおりです。

StringName.All(char.IsDigit);

コード例:

using System;
using System.Linq;

public class IdentifyString {
  public static void Main() {
    string number = "123456";
    if (number.All(char.IsDigit)) {
      Console.WriteLine("The Given String is a Number.");
    } else {
      Console.WriteLine("The Given String is Not a Number.");
    }
  }
}

出力:

The Given String is a Number.

Regex.IsMatch() メソッドを使用して、string が数値かどうかを識別する C# プログラム

C# では、正規表現を使用してさまざまなパターンをチェックできます。正規表現は、特定のアクションを実行するための特定のパターンです。C# には、^[0-9]+$ および ^\d+$ 正規表現があり、string が数値であるかどうかを確認できます。

このメソッドを使用するための正しい構文は次のとおりです。

Regex.IsMatch(StringName, @"Expression");

コード例:

using System;
using System.Text.RegularExpressions;

public class IdentifyString {
  public static void Main() {
    string number = "123456";
    if (Regex.IsMatch(number, @"^[0-9]+$")) {
      Console.WriteLine("The Given String is a Number.");
    } else {
      Console.WriteLine("The Given String is Not a Number.");
    }
  }
}

出力:

The Given String is a Number.

ここで重要なのは、2つの正規表現^[0-9]+$^\d+$ の機能が同じでないことです。^[0-9]+$ は基本的な 0-9 文字に使用されますが、RegexOptions.ECMAScript が指定されていない(デフォルト)場合は、RegexOptions.ECMAScript を指定せずに、Unicode10 進数 文字に^\d+$ を使用しています。

文字列Int32.TryParse() メソッドを使用して数値であるかどうかを識別する C# プログラム

Int32.TryParse() メソッドは、数値の string を 32 ビットの符号付き整数に変換するために使用されます。string が数値でない場合、正常に変換されないため、このメソッドは false を返します。

このメソッドを使用するための正しい構文は次のとおりです。

Int32.TryParse(StringName, out intvariable);

ここで、intvariable は初期化されていない任意の integer 変数です。

コード例:

using System;

public class IdentifyString {
  public static void Main() {
    int n;
    string number = "123456";
    bool result = Int32.TryParse(number, out n);
    if (result) {
      Console.WriteLine("The Given String is a Number.");
    } else {
      Console.WriteLine("The Given String is Not a Number.");
    }
  }
}

出力:

The Given String is a Number.

foreach ループを使用して string が数値であるかどうかを識別する C# プログラム

これは、string が数値かどうかを識別する最も基本的なプロセスです。このプロセスでは、foreach ループを使用して、string のすべての文字が数字であることを確認します。

foreach ループを使用する正しい構文は次のとおりです:

foreach (datatype variablename in somecollection) {
  // steps to iterate
}

コード例:

using System;

public class IdentifyString {
  // custom method to check if a string is a number
  public static bool CustomMethod(string number) {
    foreach (char c in number) {
      if (c >= '0' && c <= '9') {
        return true;
      }
    }
    return false;
  }
  public static void Main() {
    string number = "123456";
    if (CustomMethod(number)) {
      Console.WriteLine("The Given String is a Number.");
    } else {
      Console.WriteLine("The Given String is Not a Number.");
    }
  }
}

出力:

The Given String is a Number.

関連記事 - Csharp String