您的位置:首页 > 编程语言 > C#

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

2011-05-06 13:55 302 查看
-、开题

上次的项目(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的正则表达,显的简洁有力,而且随需求变化可以相应改变正则表达式,能够做到灵活机动
[b]2.
[/b]我的方法思路非常简单有效,但需求发生变化后,不能够灵活机动
[b]3.
[/b]AlexYFeng的方式也不错的方法之一,虽然和需求有点出入,Harry所说其他方式还有在C#中去调用vb.netIsNumberic也是可以的;等等
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: