0

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

4

4 回答 4

2
if (Regex.IsMatch(input, "^[0-9]+$"))
    ....
于 2012-10-29T12:34:58.007 回答
1

您可以使用Char.IsDigitChar.IsNumber

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

(记得添加using System.Linq;forEnumerable.All或使用循环代替)

int.TryParse改用(或double.TryParse等):

bool isNumber = int.TryParse(str, out number);
于 2012-10-29T12:35:50.623 回答
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.
}
于 2012-10-29T13:03:24.217 回答
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));
}
于 2012-10-29T12:36:58.937 回答