如果我有这些字符串:
"abc"
= false
"123"
= true
"ab2"
= false
是否有诸如IsNumeric()
类的命令或其他可以识别字符串是否为有效数字的命令?
int n;
bool isNumeric = int.TryParse("123", out n);
从 C#7 开始更新:
var isNumeric = int.TryParse("123", out int n);
或者,如果您不需要数字,则可以丢弃out 参数
var isNumeric = int.TryParse("123", out _);
var可以用它们各自的类型替换!
input
为全数字,则将返回 true。不知道它是否比TryParse
,但是它可以工作。
Regex.IsMatch(input, @"^\d+$")
如果只想知道它是否有一个或多个数字与字符混合在一起,请忽略^
+
和$
。
Regex.IsMatch(input, @"\d")
编辑:实际上,我认为它比 TryParse 更好,因为很长的字符串可能会导致 TryParse 溢出。
您还可以使用:
stringTest.All(char.IsDigit);
对于所有数字位数(不是float
),它将返回true
;如果输入字符串是任何字母数字形式, false
请注意: stringTest
不应为空字符串,因为这将通过数字测试。