检查 a 是否String
仅由数字字符组成的最简单方法是什么?
问问题
80 次
4 回答
2
if (Regex.IsMatch(input, "^[0-9]+$"))
....
于 2012-10-29T12:34:58.007 回答
1
您可以使用Char.IsDigit
或Char.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 回答