协慌网

登录 贡献 社区

识别字符串是否为数字

如果我有这些字符串:

  1. "abc" = false

  2. "123" = true

  3. "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不应为空字符串,因为这将通过数字测试。