检查String
是否仅由数字字符组成的最简单方法是什么?
答案 0 :(得分:2)
if (Regex.IsMatch(input, "^[0-9]+$"))
....
答案 1 :(得分:1)
您可以使用Char.IsDigit
或Char.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));
}