C#(用函數判斷輸入的值是否是數字)
來源:互聯網
上載者:User
-、開題
上次的項目(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
的正則表達,顯的簡潔有力,而且隨需求變化可以相應改變Regex,能夠做到靈活機動
2.
我的方法思路非常簡單有效,但需求發生變化後,不能夠靈活機動
3.
AlexYFeng
的方式也不錯的方法之一
,
雖然和需求有點出入
,
如
Harry
所說
其他方式還有在
C#
中去調用
vb.net
的IsNumberic也是可以的;等等