To check whether the string value has numeric value or not in C#

后端 未结 8 2226
你的背包
你的背包 2021-02-14 02:29

I am having an string like this

string str = \"dfdsfdsf8fdfdfd9dfdfd4\"

I need to check whether the string contains number by looping through the array.

相关标签:
8条回答
  • 2021-02-14 02:55

    If you are looking for an integer value you could use int.TryParse:

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

    For checking a decimal number, replace int.TryParse with Decimal.TryParse. Check out this blog post and comments "Why you should use TryParse() in C#" for details.

    If you need decimal numbers, you could alternatively use this regular expression:

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

    And finally another alternative (if you are not religiously against VB.NET), you could use the method in the Microsoft.VisualBasic namespace:

    Microsoft.VisualBasic.Information.IsNumeric("abc"); 
    
    0 讨论(0)
  • 2021-02-14 02:56
    str.ToCharArray().Any(x => char.IsNumber(x));
    
    0 讨论(0)
  • 2021-02-14 02:58

    in C# 2.0, try this:

            string str = "dfdsfdsf8fdfdfd9dfdfd4";
    
            for (int i = 0; i < str.Length; i++)
            {
                int result;
                if (int.TryParse(str[i].ToString(), out result))
                {
                    //element is a number            
                }
                else
                {
                    // not a number
                }
            }
    
    0 讨论(0)
  • 2021-02-14 02:58
    str.ToCharArray().Any(char.IsNumber)
    
    0 讨论(0)
  • 2021-02-14 03:10

    If you're going to loop through the string, DON'T use int.TryParse... that's way too heavy. Instead, use char.IsNumber();

    example:

    foreach (char c in myString)
        if (char.IsNumber(c))
            return true;
    
    0 讨论(0)
  • 2021-02-14 03:12

    If you're a linq junkie like me, you'd do it this way

    string s = "abc1def2ghi";
    bool HasNumber = (from a in s.ToCharArray() where a >= '0' && a <= '9' select a).Count() > 0;
    
    0 讨论(0)
提交回复
热议问题