【转】C#判断一个字符串是否是数字

//判断一个string是否可以为数字 //方案一:Try...Catch(执行效率不高) /// /// 名称:IsNumberic /// 功能:判断输入的是否是数字 /// 参数:string oText:源文本 /// 返回值: bool true:是 false:否 /// /// /// private bool IsNumberic(string oText) { try { int var1 = Convert.ToInt32(oText); return true; } catch { return false; } } //方案二:正则表达式(推荐) //a) //using System; //using System.Text.RegularExpressions; public 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]+$"; String strValidIntegerPattern = "^([-]|[0-9])[0-9]*$"; Regex objNumberPattern = new Regex("(" + strValidRealPattern + ")|(" + strValidIntegerPattern + ")"); return !objNotNumberPattern.IsMatch(strNumber) && !objTwoDotPattern.IsMatch(strNumber) && !objTwoMinusPattern.IsMatch(strNumber) && objNumberPattern.IsMatch(strNumber); } //b) public static bool IsNumeric(string value) { return Regex.IsMatch(value, @"^[+-]?/d*[.]?/d*$"); } public static bool IsInt(string value) { return Regex.IsMatch(value, @"^[+-]?/d*$"); } public static bool IsUnsign(string value) { return Regex.IsMatch(value, @"^/d*[.]?/d*$"); } //方案三:遍历 //a) public bool isnumeric(string str) { char[] ch = new char[str.Length]; ch = str.ToCharArray(); for (int i = 0; i < ch.Length; i++) { if (ch[i] < 48 || ch[i] > 57) return false; } return true; } //b) public bool IsInteger(string strIn) { bool bolResult = true; if (strIn == "") { bolResult = false; } else { foreach (char Char in strIn) { if (char.IsNumber(Char)) continue; else { bolResult = false; break; } } } return bolResult; } //c) public static bool isNumeric(string inString) { inString = inString.Trim(); bool haveNumber = false; bool haveDot = false; for (int i = 0; i < inString.Length; i++) { if (Char.IsNumber(inString[i])) { haveNumber = true; } else if (inString[i] == '.') { if (haveDot) { return false; } else { haveDot = true; } } else if (i == 0) { if (inString[i] != '+' && inString[i] != '-') { return false; } } else { return false; } if (i > 20) { return false; } } return haveNumber; }  

来自:http://www.cnblogs.com/benben7466/archive/2009/11/06/1597243.html

你可能感兴趣的:(【转】C#判断一个字符串是否是数字)