C# 判断输入文字是否是数字
C# 判断输入文字是否是数字
方案一:
/**//// <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;
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 );
注:此方法快捷,方便,很容易被掌握,但是参数很多,有兴趣的朋友可以研究一下,建议使用。
参数不好用
没有使用过
public static bool IsNumberic(string strnum)
{
int i = 0;
bool result = int.TryParse(strnum, out i);
return result;
}
方法五:
新建一个类
using System; using System.Collections.Generic; 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;); } } }
原文: c#判断输入文字是否是数字
版权所有: 本文系米扑博客原创、转载、摘录,或修订后发表,最后更新于 2017-05-18 16:35:35
侵权处理: 本个人博客,不盈利,若侵犯了您的作品权,请联系博主删除,莫恶意,索钱财,感谢!
转载注明: C# 判断输入文字是否是数字 (米扑博客)