如何检查.NET中的字符串是否为数字?

Pra*_*ari 5 c# string

如何检查.NET中的给定字符串是否为数字?

test1 - 是字符串

1232 - 是号码

test - 是字符串

tes3t - 是字符串

2323k - 是字符串

4567 - 是号码

如何使用系统功能执行此操作?

Jon*_*ood 32

您可以编写一个测试每个字符的简单循环.

bool IsNumber(string s)
{
    foreach (char c in s)
    {
        if (!Char.IsDigit(c))
            return false;
    }
    return s.Any();
}
Run Code Online (Sandbox Code Playgroud)

或者您可以使用LINQ.

bool IsNumber(string s)
{
    return s.Any() && s.All(c => Char.IsDigit(c));
}
Run Code Online (Sandbox Code Playgroud)

如果您更关心字符串是否可以表示为int类型而不是所有字符都是数字,则可以使用int.TryParse().

bool IsNumber(string s)
{
    int i;
    return int.TryParse(s, out i);
}
Run Code Online (Sandbox Code Playgroud)

注意:如果您没有开始接受人们给您的答案,您将得不到多少帮助.


Ita*_*aro 13

这将检查所有字符是否为数字(仅对于非负整数才为真)

inputString.All(c => IsDigit(c));
Run Code Online (Sandbox Code Playgroud)

您也可以尝试正则表达式

string pattern = "^[-+]?[0-9]*\.?[0-9]*$";
Regex.IsMatch(inputString, pattern)
Run Code Online (Sandbox Code Playgroud)

  • +1:好看的创新:) (2认同)

Mor*_*ten 4

如果 ontputInt 值为 0(零),则使用 int.TryParse(inputString, out outputInt),则它不是数字。

  • Int32.TryParse 返回一个 bool 加上一个带有解析值的输出参数(如果不起作用,则返回默认值)。检查 bool 结果以确定它是否有效,否则“0”将被拒绝。 (2认同)