如何确定String是否仅由数字字符组成?

时间:2012-10-29 12:32:21

标签: .net string numbers

检查String是否仅由数字字符组成的最简单方法是什么?

4 个答案:

答案 0 :(得分:2)

if (Regex.IsMatch(input, "^[0-9]+$"))
    ....

答案 1 :(得分:1)

您可以使用Char.IsDigitChar.IsNumber

var isNumber = str.Length > 0 && str.All(c => Char.IsNumber(c)); 

(请记住为using System.Linq;添加Enumerable.All或使用循环代替

或使用int.TryParse代替(或double.TryParse等):

bool isNumber = int.TryParse(str, out number);

答案 2 :(得分:1)

如果你在几个地方这样做,请在String类中添加一个扩展方法。

namespace System
{
    using System.Text.RegularExpressions;

    public static class StringExtensionMethods()
    {
        public static bool IsNumeric(this string input)
        {
            return Regex.IsMatch(input, "^[0-9]+$");
        }
    }
}

然后你可以像这样使用它:

string myText = "123";

if (myText.IsNumeric())
{ 
    // Do something.
}

答案 3 :(得分:0)

您可以使用正则表达式:

[TestCase("1234567890", true)]
[TestCase("1234567890a", false)]
public void NumericTest(string s, bool isnumeric)
{
    var regex = new Regex(@"^\d+$");
    Assert.AreEqual(isnumeric, regex.IsMatch(s));
}