gpt4 book ai didi

c# - NaN 或 IsNumeric 在 C# 中的等价物是什么?

转载 作者:IT王子 更新时间:2023-10-29 03:36:16 27 4
gpt4 key购买 nike

测试输入字符串是否包含数值(或反之不是数字)的最有效方法是什么?我想我可以使用 Double.Parse 或正则表达式(见下文),但我想知道是否有一些内置的方法可以做到这一点,例如 javascript 的 NaN()IsNumeric()(是 VB,我不记得了?)。

public static bool IsNumeric(this string value)
{
return Regex.IsMatch(value, "^\\d+$");
}

最佳答案

这没有正则表达式开销

double myNum = 0;
String testVar = "Not A Number";

if (Double.TryParse(testVar, out myNum)) {
// it is a number
} else {
// it is not a number
}

顺便说一下,除了 GUID 之外,所有标准数据类型都支持 TryParse。

更新
secretwep 提出值“2345”将作为数字通过上述测试。但是,如果您需要确保字符串中的所有字符都是数字,则应采用另一种方法。

示例 1:

public Boolean IsNumber(String s) {
Boolean value = true;
foreach(Char c in s.ToCharArray()) {
value = value && Char.IsDigit(c);
}

return value;
}

或者如果你想更花哨一点

public Boolean IsNumber(String value) {
return value.All(Char.IsDigit);
}

更新 2(来自@stackonfire 以处理 null 或空字符串)

public Boolean IsNumber(String s) { 
Boolean value = true;
if (s == String.Empty || s == null) {
value=false;
} else {
foreach(Char c in s.ToCharArray()) {
value = value && Char.IsDigit(c);
}
} return value;
}

关于c# - NaN 或 IsNumeric 在 C# 中的等价物是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/437882/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com