在C#中检查字符串值是否具有数值

bal*_*log 11 asp.net c#-2.0

我有一个像这样的字符串

string str ="dfdsfdsf8fdfdfd9dfdfd4"

我需要通过循环遍历数组来检查字符串是否包含数字.

kgi*_*kis 32

正则表达式怎么样:

bool val = System.Text.RegularExpressions.Regex.IsMatch(str, @"\d");
Run Code Online (Sandbox Code Playgroud)


spl*_*tne 9

如果要查找整数值,可以使用int.TryParse:

int result;
if (int.TryParse("123", out result))
{
    Debug.WriteLine("Valid integer: " + result);
}
else
{
    Debug.WriteLine("Not a valid integer");
}
Run Code Online (Sandbox Code Playgroud)

要检查十进制数,请将Dec.TryParse替换为Decimal.TryParse.查看此博客文章和评论"为什么您应该在C#中使用TryParse()"以获取详细信息.

如果您需要十进制数字,您也可以使用此正则表达式:

return System.Text.RegularExpressions.Regex.IsMatch(
   TextValue, @"^-?\d+([\.]{1}\d*)?$");
Run Code Online (Sandbox Code Playgroud)

最后另一种选择(如果你不虔诚地反对VB.NET),你可以使用Microsoft.VisualBasic命名空间中的方法:

Microsoft.VisualBasic.Information.IsNumeric("abc"); 
Run Code Online (Sandbox Code Playgroud)


Tim*_*uri 6

如果你要遍历字符串,请不要使用int.TryParse ......这太重了.相反,使用char.IsNumber();

例:

foreach (char c in myString)
    if (char.IsNumber(c))
        return true;
Run Code Online (Sandbox Code Playgroud)