记得早在 C 和 C++ 中就都有真接“判断一个字符串是否全为数字”的函数,
可是在C#中怎么也找不着了,这些小而有用的东东怎么可能被忽略呢,不可能,
应该是小弟学艺不精,
故发想来此征集C#中“判断一个字符串是否全为数字”最为简短而高率的方法!!

解决方案 »

  1.   

    C#中有一个类似正则表达式的方法,可以试试
    System.Text.RegularExpressions.Regex reg = new Regex("[^0-9]");if (reg.IsMatch(str)){
    ////如果不是数字的处理
    }还要有这一句,
    using System.Text.RegularExpressions;
      

  2.   

    正则表达式
     
    using System.Text.RegularExpressions; ......string str;......bool yn=Regex.IsMatch(str,@"^[0-9]+$");
    if(yn==true) 
    { MessageBox.Show("y"); //含有数字
    }
    else
    {
    MessageBox.Show("n"); //不含有数字}
      

  3.   

    or用try块判断...string str;......      try
          {
            int.Parse(str);
          }
          catch
          {
            MessageBox.Show("n"); //不是数字
          }
      

  4.   

    private bool CovertInt(string number)
    {
    try 
    {
    Convert.ToInt(number);
    return true;
    }
    catch
    {
    return false;
    }
    }
    然后调这个方法,返回false就是输入有错误!
      

  5.   

    同意 chNET(有神论者) sjc0(流浪者),根据转换正确否来判断private bool IsNum(string number)
    {
    bool blnIsnum = true;
    try 
    {
    int.Parse(str);
    }
    catch
    {
    blnIsnum = false;
    }
    return blnIsnum;
    }
      

  6.   

    非常感谢各位,
    我以前也曾试过用正则式 和 异常法来做
    但用的正则式中的另一个方法,可没这么简单哦 :(  呵榀,这个不错 :0)
    另: 使用 异常 的方法好象不大可取,因为在第一次判断时效率很低,
    不仅慢,而且判断时极占CPU!!!!
    建议不要使用,以此分享!!
      

  7.   

    >>>判断一个字符串是否全为数字use a loop (maybe better to use integer comparison)char ch0 = '0';
    char ch9 = '9';
    string s = "....";
    for(int i=0; i < s.Length; i++)
    {
       if (s[i] < ch0 || s[i] > ch9)
             return false;
    }return true;
      

  8.   

    agree with saucer
    使用正则表达式不是最高效的方法
    foreach(char c in yourStr)
    {
       if (s[i] < '0' || s[i] > '9')
             return false;
    }
    return true;
      

  9.   


    foreach(char c in yourStr)
    {
       if (c < '0' || c > '9')
             return false;
    }
    return true;
      

  10.   

    //判断一个字符串是否全为数字  
    我目前用的是这个,现在感觉有点不伦不类的,郁闷,哈哈哈:bool IsNumber(str)
    {
      int len = str.Lenth();
      for(int index = 0; index < len; index ++)
      {
         if(!Char.IsNumber(str, index))
            return false;
      }
      return  true;
    }
      

  11.   

    还是 楼上的 “brightheroes(闭关|那一剑的风情) ”方法过瘾!