轉載:https://www.cnblogs.com/dekevin/p/4177722.html
方案一:
/// <summary> /// 名稱:IsNumberic /// 功能:判斷輸入的是否是數字 /// 參數:string oText:源文本 /// 返回值: bool true:是 false:否 /// </summary> public bool IsNumberic(string oText) { try { int var1 = Convert.ToInt32(oText); return true; } catch { return false; } }
try catch方法
例:
try { Convert.ToInt32("123"); Console.Write("是數字"); } catch (Exception ex) { Console.Write("非數字"); }
注:如果有很多字符串要求判斷,此方法需要大量的try catch 以及finally來處理后續的程序.不建議使用此方法。
改進一下:
因為可以轉int 可以轉Decimal
public bool IsNumberic(string oText) { try { Decimal Number = Convert.ToDecimal(oText); return true; } catch { return false; } }
方案二:
如果是純數字還可以采用ASCII碼進行判斷
/// <summary> /// 判斷是否是數字 /// </summary> /// <param name="str">字符串</param> /// <returns>bool</returns> public bool IsNumeric(string str) { if (str == null || str.Length == 0) return false; System.Text.ASCIIEncoding ascii = new System.Text.ASCIIEncoding(); byte[] bytestr = ascii.GetBytes(str); foreach (byte c in bytestr) { if (c < 48 || c > 57) { return false; } } return true; }
方案三:
正則表達式方法
例:引用正則表達式類
using System.Text.RegularExpressions; public static void dd() { Regex reg = new Regex("^[0-9]+$"); Match ma = reg.Match(text); if (ma.Success) { //是數字 } else { //不是數字 } }
注:此方法快捷,但不太容易掌握,尤其是正則表達式公式,如果有興趣的朋友可以好好研究,這東西很好用的,建議使用。
方案四:
Double.TryParse方法
例:
bool isNum=System.Double.TryParse("所要判斷的字符串" ,System.Globalization.NumberStyles.Integer,null,out );
注:此方法快捷,方便,很容易被掌握,但是參數很多,有興趣的朋友可以研究一下,建議使用。
方法五:
新建一個類
using System; using System.Text.RegularExpressions; namespace LBC.Number { /// <summary> /// 數字判斷的類 /// </summary> public class NumberClass { /// <summary> /// 判斷是否是數字 /// </summary> /// <param name="strNumber">要判斷的字符串</param> /// <returns></returns> public static bool IsNumber(String strNumber) { Regex objNotNumberPattern = new Regex("[^0-9.-]"); Regex objTwoDotPattern = new Regex("[0-9]*[.][0-9]*[.][0-9]*"); Regex objTwoMinusPattern = new Regex("[0-9]*[-][0-9]*[-][0-9]*"); String strValidRealPattern = "^([-]|[.]|[-.]|[0-9])[0-9]*[.]*[0-9]+___FCKpd___0quot"; String strValidIntegerPattern = "^([-]|[0-9])[0-9]*___FCKpd___0quot"; Regex objNumberPattern = new Regex("(" + strValidRealPattern + ")|(" + strValidIntegerPattern + ")"); return !objNotNumberPattern.IsMatch(strNumber) && !objTwoDotPattern.IsMatch(strNumber) && !objTwoMinusPattern.IsMatch(strNumber) && objNumberPattern.IsMatch(strNumber); } /// <summary> /// 判斷是否是int類型 /// </summary> /// <param name="Value">要判斷的字符串</param> /// <returns></returns> public static bool IsInt(string Value) { return Regex.IsMatch(Value, @"^[+-]?d*___FCKpd___0quot"); } /// <summary> /// 判斷是否是數字 /// </summary> /// <param name="Value">要判斷的字符串</param> /// <returns></returns> public static bool IsNumeric(string Value) { return Regex.IsMatch(Value, @"^[+-]?d*[.]?d*___FCKpd___0quot"); } } }