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