如何判断一个字符串全是数字?请给段代码,最好是用现成的一个函数就能解决。谢谢

解决方案 »

  1.   

    如果只是判断是否为全为数字,而不管0的位置,也就是00123这样也算合法,用下面的private bool CheckNum(string src)
    {
        if (System.Text.RegularExpressions.Regex.IsMatch(src, @"^[0-9]+$"))
            return true;
        return false;
    }否则用int.TryParse吧
      

  2.   

    还有,就是,你可以用int.parse之类的类型转换,如果转换成功,也说明是数字
      

  3.   

    正则吧
    "^\d+$"或者如果不是很长的话可以用long.TryParse
      

  4.   

    public static bool IsNum(String str)
    {
    for(int i=0;i<str.Length;i++)
    {
    if(str[i]<='0' || str[i]>='9')
    return false;
    }
    return true;
    }
      

  5.   

    参考http://www.itepub.net/html/kaifajingcui/C_/2006/0514/30153.html
      

  6.   

    public static bool IsNum(String str)
    {
    for(int i=0;i<str.Length;i++)
    {
    if(str[i]<='0' || str[i]>='9')
    return false;
    }
    return true;
    }
    我用的这个
      

  7.   

    正则吧
    "^\d+$"这个我还是第一次看到,过客和后面几位的方法是可行的,但我想了解一下如何用正则来解决这个任务,能给具体代码吗,是不是也是System.Text.RegularExpressions这样?
      

  8.   

    过客的int.TryParse,会不会溢出?
      

  9.   

    int。TryParse和long.Tryparses在2003中似乎没有?  只有parse?
      

  10.   

    static bool IsNum(string src)
            {
                for (int i = 0; i < src.Length; i++)
                {
                    if(!Char.IsDigit(src[i]))
                        return false;
                }
                return true;
            }我也写了个
      

  11.   

    差不多相当于及其频繁的检测,即每行的号码我都需需要验证是否合法手机号码。过客,正则的具体代码是怎样的,我已经5年没有编程了,想当初也是csdn的高手,呵呵
      

  12.   

    原来是前辈,失敬,我上面给的就是正则方法的代码啊
    private bool CheckNum(string src)
    {
        if (System.Text.RegularExpressions.Regex.IsMatch(src, @"^[0-9]+$"))
            return true;
        return false;
    }如果说验证是否为合法的手机号码,那还得用正则private bool CheckNum(string src)
    {
        if (System.Text.RegularExpressions.Regex.IsMatch(src, @"^1(3\d|5[389])\d{8}$"))
            return true;
        return false;
    }如果是频繁检测,可以这样提高效率,当然,只是在频繁检测的情况下
    System.Text.RegularExpressions.Regex reg = new System.Text.RegularExpressions.Regex(@"^1(3\d|5[389])\d{8}$", RegexOptions.Compiled);
    private bool CheckNum(string src)
    {
        if (reg.IsMatch(src))
            return true;
        return false;
    }
    我倒是用for循环测过正则的效率,但是没有用大量的数据源测过,你可以用你的数据源测一下,看能否达到你的要求
      

  13.   

    RegexOptions是在哪个using里面的?我编译通不过
      

  14.   

    using System.Text.RegularExpressions;
      

  15.   

    找到了,是using System.Text.RegularExpressions;
    不过我还有一个问题,reg并没有在CheckNum中作任何引用,这个似乎不合常理?
      

  16.   

    过客,你有msdn否,我买了一张盗版的dvd,说是有msdn,结果是2个6.0加一个2003,根本没有msdn,搞得我现在很被动,如果有的话,我可以开个ftp
      

  17.   

    呵呵,我这教育网,从我这传还不如你在迅雷上搜索来的快reg在这里用到了
    if (reg.IsMatch(src))
      

  18.   

    可以去 微软的网站上 找 msdn 啊。在线的。
      

  19.   

    bool IsNum(string src)
            {
                for (int i = 0; i < (src.Length)/2; i++)
                {
                    if(!Char.IsDigit(src[i]))
                        return false;
                }
                for(i = (src.Length)/2; i<src.Length;i++)
                {    
                      if(!Char.IsDigit(src[i]))
                        return false;
                 }
                return true;
            }
      

  20.   

    不要那么难吧,

    try
    {
    这里将字符串转换为int ,如果能转换,就不会出错,如果不能转换,就会执行catch语句
    }例如
    try
    {
        Convert.ToInt32(某变量) ;// 如果不能转换,就会进行捕捉错误
    }
    catch (Exception AAA)
    {
      这里提示这个变量不是全是数字
    } 楼主理解了吗?
      

  21.   

    public static bool IsNum(string Str)
        {
            bool blResult = true;
            if (Str == "")
            {
                blResult = false;
            }
            else
            {
                foreach (char Char in Str)
                {
                    if (!Char.IsNumber(Char))
                    {
                        blResult = false;
                        break;
                    }
                }
                if (blResult)
                    if (int.Parse(Str) == 0)
                    {
                        blResult = false;
                    }
            }
            return blResult;
        }if (!IsNum(rqID))
    {
    }
    我这么用!
      

  22.   

    可以去 微软的网站上 找 msdn 啊。在线的。具体网址是多少?
      

  23.   

    http://msdn2.microsoft.com/en-us/library/tst0kwb1(VS.80).aspx
      

  24.   

    try
    {
        Convert.ToInt32(某变量) ;// 如果不能转换,就会进行捕捉错误
    }
    catch (Exception AAA)
    {
      这里提示这个变量不是全是数字
    } 楼主理解了吗?
    --------------------------------------------------------------------------
    哥们,要是 某变量="12345678910"照样抛异常.
    还是用正则比较好.
      

  25.   

    ^1(3\d|5[389])\d{8}$
    这个正则表达式怎么解释?
    1是第一位是1,3\d|5的意思是第二位是3或者5? [389]的意思是? \d{8}的意思是13x后面的长度是8位?
      

  26.   

    ^1(3\d|5[389])\d{8}$1 第一位是1
    (3\d|5[389]) 第二位是3后接任意数字,或者5加3、8、9,因为现在15开头的只有153、158、189
    \d{8} 后面是长度为8的数字
      

  27.   

    为什么不能把字符一个个读入然后转换为ASCII码,卡定一个范围,肯定不会溢出.
      

  28.   

    呵呵,其实还有156的。 我看考虑到扩展性,还是用1(3\d|5\d)\d{8}$为好?