乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      C#中判斷是否為數(shù)字_明明不是Angel

       COPY&PASTE 2009-11-30

      C#判斷一個(gè)string是否可以為數(shù)字,五種解決方案

                                             http://hi.baidu.com/yehaiping1214/blog/item/2ca950131d9a1327dd54018f.html

       

      判斷一個(gè)string是否可以為數(shù)字


      方案一:Try...Catch(執(zhí)行效率不高)
      ///


      /// 名稱:IsNumberic
      /// 功能:判斷輸入的是否是數(shù)字
      /// 參數(shù):string oText:源文本
      /// 返回值: bool true:是 false:否
      ///
      ///
      ///
      private bool IsNumberic(string oText)
      {
      try
               {
      int var1=Convert.ToInt32 (oText);
      return true;
               }
      catch
      {
      return false;
      }
      }

      方案二:正則表達(dá)式(推薦)
      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    {
              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;
      }
      }

      方案四:改寫vb的IsNumeric源代碼(執(zhí)行效率不高)

      //主調(diào)函數(shù)
      public static bool IsNumeric(object Expression)
      {
            bool flag1;
            IConvertible convertible1 = null;
            if (Expression is IConvertible)
            {
                  convertible1 = (IConvertible) Expression;
            }
            if (convertible1 == null)
            {
                  if (Expression is char[])
                  {
                        Expression = new string((char[]) Expression);
                  }
                  else
                  {
                        return false;
                  }
            }
            TypeCode code1 = convertible1.GetTypeCode();
            if ((code1 != TypeCode.String) && (code1 != TypeCode.Char))
            {
                  return Utils.IsNumericTypeCode(code1);
            }
            string text1 = convertible1.ToString(null);
            try
            {
                  long num2;
                  if (!StringType.IsHexOrOctValue(text1, ref num2))
                  {
                        double num1;
                        return DoubleType.TryParse(text1, ref num1);
                  }
                  flag1 = true;
            }
            catch (Exception)
            {
                  flag1 = false;
            }
            return flag1;
      }

      //子函數(shù)
      // return Utils.IsNumericTypeCode(code1);
      internal static bool IsNumericTypeCode(TypeCode TypCode)
      {
            switch (TypCode)
            {
                  case TypeCode.Boolean:
                  case TypeCode.Byte:
                  case TypeCode.Int16:
                  case TypeCode.Int32:
                  case TypeCode.Int64:
                  case TypeCode.Single:
                  case TypeCode.Double:
                  case TypeCode.Decimal:
                  {
                        return true;
                  }
                  case TypeCode.Char:
                  case TypeCode.SByte:
                  case TypeCode.UInt16:
                  case TypeCode.UInt32:
                  case TypeCode.UInt64:
                  {
                        break;
                  }
            }
            return false;
      }

      //-----------------
      //StringType.IsHexOrOctValue(text1, ref num2))
      internal static bool IsHexOrOctValue(string Value, ref long i64Value)
      {
            int num1;
            int num2 = Value.Length;
            while (num1 < num2)
            {
                  char ch1 = Value[num1];
                  if (ch1 == '&')
                  {
                        ch1 = char.ToLower(Value[num1 + 1], CultureInfo.InvariantCulture);
                        string text1 = StringType.ToHalfwidthNumbers(Value.Substring(num1 + 2));
                        if (ch1 == 'h')
                        {
                              i64Value = Convert.ToInt64(text1, 0x10);
                        }
                        else if (ch1 == 'o')
                        {
                              i64Value = Convert.ToInt64(text1, 8);
                        }
                        else
                        {
                              throw new FormatException();
                        }
                        return true;
                  }
                  if ((ch1 != ' ') && (ch1 != '\u3000'))
                  {
                        return false;
                  }
                  num1++;
            }
            return false;
      }
      //----------------------------------------------------
      // DoubleType.TryParse(text1, ref num1);
      internal static bool TryParse(string Value, ref double Result)
      {
            bool flag1;
            CultureInfo info1 = Utils.GetCultureInfo();
            NumberFormatInfo info3 = info1.NumberFormat;
            NumberFormatInfo info2 = DecimalType.GetNormalizedNumberFormat(info3);
            Value = StringType.ToHalfwidthNumbers(Value, info1);
            if (info3 == info2)
            {
                  return double.TryParse(Value, NumberStyles.Any, info2, out Result);
            }
            try
            {
                  Result = double.Parse(Value, NumberStyles.Any, info2);
                  flag1 = true;
            }
            catch (FormatException)
            {
                  flag1 = double.TryParse(Value, NumberStyles.Any, info3, out Result);
            }
            catch (Exception)
            {
                  flag1 = false;
            }
            return flag1;
      }

      方案五: 直接引用vb運(yùn)行庫(執(zhí)行效率不高)

      方法: 首先需要添加Visualbasic.runtime的引用
      代碼中Using Microsoft.visualbasic;
      程序中用Information.isnumeric("ddddd");

      C#判斷一個(gè)string是否可以為數(shù)字,五種解決方案

                                            

       

      判斷一個(gè)string是否可以為數(shù)字


      方案一:Try...Catch(執(zhí)行效率不高)
      ///


      /// 名稱:IsNumberic
      /// 功能:判斷輸入的是否是數(shù)字
      /// 參數(shù):string oText:源文本
      /// 返回值: bool true:是 false:否
      ///
      ///
      ///
      private bool IsNumberic(string oText)
      {
      try
               {
      int var1=Convert.ToInt32 (oText);
      return true;
               }
      catch
      {
      return false;
      }
      }

      方案二:正則表達(dá)式(推薦)
      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    {
              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;
      }
      }

      方案四:改寫vb的IsNumeric源代碼(執(zhí)行效率不高)

      //主調(diào)函數(shù)
      public static bool IsNumeric(object Expression)
      {
            bool flag1;
            IConvertible convertible1 = null;
            if (Expression is IConvertible)
            {
                  convertible1 = (IConvertible) Expression;
            }
            if (convertible1 == null)
            {
                  if (Expression is char[])
                  {
                        Expression = new string((char[]) Expression);
                  }
                  else
                  {
                        return false;
                  }
            }
            TypeCode code1 = convertible1.GetTypeCode();
            if ((code1 != TypeCode.String) && (code1 != TypeCode.Char))
            {
                  return Utils.IsNumericTypeCode(code1);
            }
            string text1 = convertible1.ToString(null);
            try
            {
                  long num2;
                  if (!StringType.IsHexOrOctValue(text1, ref num2))
                  {
                        double num1;
                        return DoubleType.TryParse(text1, ref num1);
                  }
                  flag1 = true;
            }
            catch (Exception)
            {
                  flag1 = false;
            }
            return flag1;
      }

      //子函數(shù)
      // return Utils.IsNumericTypeCode(code1);
      internal static bool IsNumericTypeCode(TypeCode TypCode)
      {
            switch (TypCode)
            {
                  case TypeCode.Boolean:
                  case TypeCode.Byte:
                  case TypeCode.Int16:
                  case TypeCode.Int32:
                  case TypeCode.Int64:
                  case TypeCode.Single:
                  case TypeCode.Double:
                  case TypeCode.Decimal:
                  {
                        return true;
                  }
                  case TypeCode.Char:
                  case TypeCode.SByte:
                  case TypeCode.UInt16:
                  case TypeCode.UInt32:
                  case TypeCode.UInt64:
                  {
                        break;
                  }
            }
            return false;
      }

      //-----------------
      //StringType.IsHexOrOctValue(text1, ref num2))
      internal static bool IsHexOrOctValue(string Value, ref long i64Value)
      {
            int num1;
            int num2 = Value.Length;
            while (num1 < num2)
            {
                  char ch1 = Value[num1];
                  if (ch1 == '&')
                  {
                        ch1 = char.ToLower(Value[num1 + 1], CultureInfo.InvariantCulture);
                        string text1 = StringType.ToHalfwidthNumbers(Value.Substring(num1 + 2));
                        if (ch1 == 'h')
                        {
                              i64Value = Convert.ToInt64(text1, 0x10);
                        }
                        else if (ch1 == 'o')
                        {
                              i64Value = Convert.ToInt64(text1, 8);
                        }
                        else
                        {
                              throw new FormatException();
                        }
                        return true;
                  }
                  if ((ch1 != ' ') && (ch1 != '\u3000'))
                  {
                        return false;
                  }
                  num1++;
            }
            return false;
      }
      //----------------------------------------------------
      // DoubleType.TryParse(text1, ref num1);
      internal static bool TryParse(string Value, ref double Result)
      {
            bool flag1;
            CultureInfo info1 = Utils.GetCultureInfo();
            NumberFormatInfo info3 = info1.NumberFormat;
            NumberFormatInfo info2 = DecimalType.GetNormalizedNumberFormat(info3);
            Value = StringType.ToHalfwidthNumbers(Value, info1);
            if (info3 == info2)
            {
                  return double.TryParse(Value, NumberStyles.Any, info2, out Result);
            }
            try
            {
                  Result = double.Parse(Value, NumberStyles.Any, info2);
                  flag1 = true;
            }
            catch (FormatException)
            {
                  flag1 = double.TryParse(Value, NumberStyles.Any, info3, out Result);
            }
            catch (Exception)
            {
                  flag1 = false;
            }
            return flag1;
      }

      方案五: 直接引用vb運(yùn)行庫(執(zhí)行效率不高)

      方法: 首先需要添加Visualbasic.runtime的引用
      代碼中Using Microsoft.visualbasic;
      程序中用Information.isnumeric("ddddd");

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多