如何在C#中验证字符串是否为数字?

可以使用int.TryParseint.Parse验证具有数字的字符串。

如果Int.Parse无法将字符串解析为整数,则抛出异常,而Int.TryParse返回布尔值,指示其是否成功。另外,Int.TryParse具有一个out参数,该参数具有已解析的字符串的值。

示例

using System;
namespace DemoApplication {
   class Program {
      static void Main(string[] args) {
         string numberString = "123";
         int number = 0;
         if(int.TryParse(numberString, out number)) {
            Console.WriteLine($"Try Parse Interger Number: {number}");
         }
         Console.WriteLine($"Parse Interger Number: {int.Parse(numberString)}");
         Console.ReadLine();
      }
   }
}

输出结果

代码的输出是

Try Parse Interger Number: 123
Parse Interger Number: 123

在上面的示例中,由于int.Tryparse返回一个布尔值以及out参数中的已分析字符串,因此if条件返回true。另外,int.Parse返回整数值,因为字符串包含适当的数字。

示例

using System;
namespace DemoApplication {
   class Program {
      static void Main(string[] args) {
         string numberString = "A123";
         int number = 0;
         if(int.TryParse(numberString, out number)) {
            Console.WriteLine($"Try Parse Interger Number: {number}");
         }
         elsem{
            Console.WriteLine($"String doesnot have a proper number");
         }
         Console.ReadLine();
      }
   }
}

输出结果

上面代码的输出是

String doesnot have a proper number

由于字符串没有正确的数字,因此int.Tryparse将返回false并执行代码的else部分。在相同的情况下,int.Parse将引发如下异常。

示例

using System;
namespace DemoApplication {
   class Program {
      static void Main(string[] args) {
         string numberString = "A123";
         Console.WriteLine($"Parse Interger Number: {int.Parse(numberString)}");
         //例外:输入字符串的格式不正确。
      }
   }
}