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;
       }
时间: 2024-10-10 11:00:48

C#判断一个string是否为数字的相关文章

js中判断一个变量是否为数字类型的疑问

1.typeof(a)=="number" 是true,但是a instanceof Number却为false,不理解 2.isNaN()不能判断一个变量是否为数字类型,isNaN(123)值为false,isNaN('123')值也为false.isNaN() 的实际作用跟它的名字isNaN并不一致,isNaN(NaN)值为true,isNaN(Number("xyz"))值为true,isNaN("abc")值为true,isNaN(123

java 判断一个字符串中的数字:是否为数字、是否包含数字、截取数字

题外话: JavaScript中判断一个字符是否为数字,用函数:isDigit(); 一.判断一个字符串是否都为数字 package com.cmc.util; import java.util.regex.Matcher; import java.util.regex.Pattern; public class DigitUtil { public static void main(String[] args) { String str="123d"; System.out.prin

C# 判断一个string型的时间格式是否正确

在项目开发过程中,由于各种坑爹的需求,我们可能需要用户自己手动输入时间,不过这种功能一般都出现在自己家的后台里面,咳咳,言归正传.既然如此,那么这个时候我们就需要对用户手动输入的时间格式进行验证,方法如下: //判断一个string型的时间格式是否正确 string inputTime = "2014年05月20日"; DateTime dateTime = new DateTime(); bool convertResult = DateTime.TryParse(inputTime

Oracle sql判断一个字段是否全数字 或含有中文

[sql] view plain copy update (select length(t.name), t.* -- name,length(name) from g_enterprise_info t where nvl2(translate(name, '\1234567890 ', '\'), 'is characters ', 'is number ') = 'is number ' and asciistr(gszcdjh) like '%\%') set name = gszcdj

Java 如何判断一个字符是否是数字或字母

在C++中, 可以用isdigit()判断一个字符是否是数字,可以用isalpha()判断一个字符是否是字母,还有很多,都在<cctype>头文件中 而类似的方法在JAVA中,则主要是Character类的静态方法: Character.isDigit( char ch ) // 判断ch是否是数字字符,如'1','2‘,是返回true.否则返回false Character.isLetter( char ch ) // 判断ch是否是字母字符,如'a','b‘,是返回true.否则返回fal

Oracle 中如何判断一个字符串是否为数字

方法一:通过 To_Number 函数异常来判断 CREATE OR REPLACE FUNCTION Is_Number ( str_    VARCHAR2 ) RETURN VARCHAR2 IS num_    NUMBER; BEGIN num_ := to_number(str_); RETURN 'Y'; EXCEPTION WHEN OTHERS THEN RETURN 'N'; END Is_Number; / SQL> select Is_Number('12345') fr

Java中怎样判断一个字符串是否是数字?

1:正则表达式 public static void main(String[] args) { String str = "123456456456456456"; boolean isNum = str.matches("[0-9]+"); System.out.println(isNum); } 2:用类型转换 public static void main(String[] args) { boolean bool = isNum("123456&

Java中如何判断一个字符串是否为数字

方法一:异常处理 public static boolean isInteger(String str){ try { Integer i = Integer.parseInt(str); return true; } catch (Exception e) { return false; } } 方法二:正则匹配 boolean isNum = str.matches("[0-9]+"); 方法三:ascii码判断 public static boolean isInteger(St

SQL实用技巧:如何判断一个值是否为数字的方法

检测是不是数字型的数据, 两种方法 1. ISNUMERIC ( expression ) 2. PATINDEX ( ‘%pattern%‘ , expression ) 1. ISNUMERIC ( expression ) 如果是数字类型则返回 1 ,不是则返回 0 但ISNUMERIC有时是不可靠的,如果你不允许expression包含有任何字母,则会判断错: 如:ISNUMERIC(‘23e4’)返回 1 ISNUMERIC(‘23d4’)返回 1 2. PATINDEX ( ‘%pa