判断数字最高效率的算法

这是以前csdn上一个经典的帖子,我当年刚学 .net的时候学习的,不知道有没有朋友有不同意见

Q:怎样判断是数字?
   例如:12345--->是数字,
   12345t--->不是数字
   12345年--->不是数字


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

经过查看,考虑,,,第五中效率最高!!!!胜出

A:

public static bool StrIsInt(string Str)
    {
      try
      {
        Int32.Parse(Str);
        return true;
      }
      catch
      {
        bool flag = false;
        return flag;
      }
    }



C#中有一个类似正则表达式的方法,可以试试
System.Text.RegularExpressions.Regex reg = new Regex("[^0-9]");

if (reg.IsMatch(str)){
////如果不是数字的处理
}

还要有这一句,
using System.Text.RegularExpressions;

 



正则表达式
 
using System.Text.RegularExpressions;

 ......

string str;

......

bool yn=Regex.IsMatch(str,@"^[0-9]+$");
if(yn==true)
{

 MessageBox.Show("y"); //含有数字
}
else
{
 MessageBox.Show("n"); //不含有数字

}



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



>>>判断一个字符串是否全为数字

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;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值