C#(用函数判断输入的值是否是数字)[转载]

C#( 用函数判断输入的值是否是数字)
 
-、开题
 
上次的项目(C#)恰好碰到这个问题,开始以为C#肯定会提供类似VB的IsNumberic的函数吧,找了半天没有找到(可能有吧不确定拉),项目紧,算了自己写一个吧,写完总感觉不是最优的.蹭日这次积月累的机会,大家集思广益,有想法的说出来,有行动的写出来.公认最好的函数就加到C#公共函数.
输入任何都是允许的,只要输入的字符串每一个字符是数字就OK,所以:
+123456,-123456,123.456,00.123456,.12345678 不符合要求
00123456 符合要求
 
二讨论
方法一:
public static bool ISNumber(string p_strInput)
  {
   if (p_strInput == null)
   {
    return false;
   }
   return Regex.IsMatch(p_strInput,@"^/d+$",RegexOptions.Singleline);
  }
 
方法二:
public static bool IsNumber(String str)
  {
   for(int i=0;i<str.Length;i++)
   {
    if(!Char.IsNumber(str,i))
     return false;
   }
   return true;
  }
 
方法三:
public static bool IsLong(string para)
  {
   long temp;
   try
   {
    temp = long.Parse(para);
    return true;
   }
   catch
   {
    return false;
   }
  }
 
等等。
 
三:总结
1.JustinSun 的正则表达,显的简洁有力,而且随需求变化可以相应改变正则表达式,能够做到灵活机动
2.
我的方法思路非常简单有效,但需求发生变化后,不能够灵活机动
3.
AlexYFeng 的方式也不错的方法之一 , 虽然和需求有点出入 , Harry 所说
其他方式还有在 C# 中去调用 vb.net IsNumberic 也是可以的 ; 等等
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值