C#判断一个string是否为数字

Posted 海乐学习-专业呼叫中心解决方案

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#判断一个string是否为数字相关的知识,希望对你有一定的参考价值。

案一:Try...Catch(执行效率不高)
private bool IsNumberic(string oText)
{
          try
         {
                  int var1=Convert.ToInt32 (oText);
                  return true;
         }
          catch
         {
                  return false;
         }
}

 

方案二:正则表达式(推荐)
using System.Text.RegularExpressions; a)
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*$"); } public static bool isTel(string strInput) { return Regex.IsMatch(strInput, @"\d{3}-\d{8}|\d{4}-\d{7}"); } b) 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); } 方案三:遍历 a) public bool isnumeric(string str) { char[] ch=new char[str.Length]; ch=str.ToCharArray(); for(int i=0;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 { 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; }

 

以上是关于C#判断一个string是否为数字的主要内容,如果未能解决你的问题,请参考以下文章

c#怎么判断一个数组是不是含有某个数字

C#判断字符串是否是数字

在c#中如何实现判断一个数值是不是为整数(或小数)?

在c#中如何实现判断一个数值是不是为整数(或小数) 谢谢

C#怎么判断输入内容是不是为数字

C#如何判断字符串中是不是包含某个字符