C# 識別字串是否為數字

Minahil Noor 2023年1月30日 2020年6月9日
  1. C# 使用 Enumerable.All() 方法來識別字串是否為數字
  2. C# 使用 Regex.IsMatch() 方法來識別字串是否為數字
  3. C# 使用 Int32.TryParse() 方法來識別字串是否為數字
  4. C# 使用 foreach 迴圈來識別字串是否為數字
C# 識別字串是否為數字

在處理現實世界中的問題時,我們希望將輸入作為字串,而將其用作整數。為了使之成為可能,我們總是必須確認輸入的字串是否為數字。

在 C# 中,我們可以使用許多方法來識別輸入字串是否為數字。

C# 使用 Enumerable.All() 方法來識別字串是否為數字

Enumerable.All() 方法屬於 LINQ。LINQ 是 C# 的一部分,用於訪問不同的資料庫和資料來源。我們可以修改此方法以檢查字串是否為數字。我們將把 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.

C# 使用 Regex.IsMatch() 方法來識別字串是否為數字

在 C# 中,我們可以使用正規表示式來檢查各種模式。正規表示式是執行特定動作的特定模式。在 C# 中,我們使用^[0-9]+$^\d+$ 正規表示式來檢查字串是否為數字。

此方法的正確語法如下:

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.

在這裡,重要的一點是兩個正規表示式 ^[0-9]+$^\d+$ 的功能並不相同。^[0-9]+$ 用於基本的 0-9 字元,而^\d+$ 用於 Unicode 中的十進位制數字,未指定 RegexOptions.ECMAScript 的類別。例如,泰語中的 4,也被標識為數字。

C# 使用 Int32.TryParse() 方法來識別字串是否為數字

Int32.TryParse() 方法用於將數字的字串轉換為 32 位帶符號整數。如果字串不是數字,則不會成功轉換,因此此方法返回 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.

C# 使用 foreach 迴圈來識別字串是否為數字

這是識別字串是否為數字的最基本過程。在這個過程中,我們將使用 foreach 迴圈將字串的每個字元檢查為數字。

使用 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