测试输入字符串是否包含数值(反之不包含数字)的最有效方法是什么?我想我可以使用Double.Parse
或正则表达式(见下文),但我想知道是否有一些内置的方法可以做到这一点,比如javascript的NaN()
或IsNumeric()
(是VB吗,我不记得了?)。
public static bool IsNumeric(this string value)
{
return Regex.IsMatch(value, "^\\d+$");
}
发布于 2009-01-13 03:38:32
我更喜欢这样的东西,它让你决定测试什么NumberStyle
。
public static Boolean IsNumeric(String input, NumberStyles numberStyle) {
Double temp;
Boolean result = Double.TryParse(input, numberStyle, CultureInfo.CurrentCulture, out temp);
return result;
}
发布于 2015-06-12 14:32:08
我知道已经有很多不同的方式回答了这个问题,有扩展和lambda示例,但将两者结合起来是最简单的解决方案。
public static bool IsNumeric(this String s)
{
return s.All(Char.IsDigit);
}
或者,如果您使用的是Visual Studio 2015 (C# 6.0或更高版本),则
public static bool IsNumeric(this String s) => s.All(Char.IsDigit);
很棒的C#6在一行上。当然,这是有限的,因为它只测试数字字符。
要使用,只需有一个字符串并在其上调用方法,例如:
bool IsaNumber = "123456".IsNumeric();
发布于 2009-01-13 03:37:15
是啊,IsNumeric是VB。人们通常使用TryParse()方法,尽管它有点笨拙。正如您所建议的,您可以随时编写自己的代码。
int i;
if (int.TryParse(string, out i))
{
}
https://stackoverflow.com/questions/437882
复制相似问题