C#中创建一个控制台应用程序,怎么检查输入的是否是数字?

解决方案 »

  1. int.Parse(str);
    出异常说明有非数字的在里面。
    或者写个正则应该也行的
      


  2. /// <summary>
    /// 检测字符串是否全为正整数
    /// </summary>
    /// <param name="str"></param>
    /// <returns></returns>
    public static bool IsNum(string str)
    {
    bool blResult = true;//默认状态下是数字 if(str == "")
    blResult = false;
    else
    {
    foreach(char Char in str)
    {
    if(!char.IsNumber(Char))
    {
    blResult = false;
    break;
    }
    }
    if(blResult)
    {
    if(int.Parse(str) == 0)
    blResult = false;
    }
    }
    return blResult;
    }
      

  3. string input=Console.ReadLine();
    double value;
    if (double.TryParse(input, out value))
    {
         //输入的是数字
          //value就是值
          //int.TryParse  double.TryParse.....
    }
      

  4. try
    {
       var1=System.Convert.ToInt32(text1.text);
    }
    catch
    {}
      


  5. string input = Console.ReadLine();
    bool IsNum = Regex.IsMatch(input,@"^\d+$");
      


  6. try...catch想了半天,没有思路,能否提示一下?
    谢谢!这是我接收的变量,判断firstNumber是否是数字
    firstNumber=Convert.ToDouble(Console.ReadLine ());
      

  7.         static void Main(string[] args)
            {
                Console.WriteLine(char.IsNumber((char)Console.Read()).ToString());
                Console.Read();
            }
      

  8. 我定义的firstNumber是double型的。
    是不是定义为string型的比较好判断?
      

  9. readline        static void Main(string[] args)
            {
                string S = Console.ReadLine();
                bool IsNumber = true;
                foreach (char c in S.ToCharArray())
                    IsNumber &= char.IsNumber(c);
                Console.WriteLine(IsNumber.ToString());
                Console.Read();
            }
      


  10.         public static bool IsAllCharactersNumber(string str)
            {
                bool bIsNumber = true;
                if (str.Length == 0) return false;            for (int i = 0; i < str.Length; i++)
                {
                    char cTemp = str[i];
                    int iTemp = Convert.ToInt32(cTemp);
                    if (iTemp < 48 || iTemp > 57)
                    {
                        bIsNumber = false;
                        break;
                    }
                }            return bIsNumber;
            }
      

  11. 个人觉得最好使用正则表达式,
    string input = Console.ReadLine(); 
    bool IsNum = Regex.IsMatch(input,@"^\d+$");
      

  12. 我是用正则表达式
    测试过没问题的        /// <summary>
            /// 是否是数字并且是否有小数
            /// </summary>
            /// <param name="strNum"></param>
            /// <param name="intNumLength"></param>
            /// <returns></returns>
            public static bool NumIsNotDouble(string strNum, int intNumLength)
            {
                string strYlib;
                strYlib = @"^\s*(\d{";            for (int i = 1; i < intNumLength; i++)
                {
                    strYlib += i + @"}|(\d{";
                }            strYlib += intNumLength + "}";
                for (int i = 1; i < intNumLength; i++)
                {
                    strYlib += ")";
                }
                strYlib += @")\s*$";            if (Regex.IsMatch(strNum, @strYlib) != true)
                {
                    return false;
                }
                return true;
            }
      

  13. try 
    {
        firstNumber=Convert.ToDouble(Console.ReadLine ());
        double.parse(firstNumber);
          //firstNumber是数字  如果是整数用Int.parse();

    catch { 
        // 不是整数
      

  14. 幸好你们不是我的手下,用try/catch的统统面壁去
      

  15. 将接受的字符串转换成Char数组,然后判断数组中的每个字符是不是整数
      


  16. 就这了,最方便的Int64.TryParse也可!
      

  17. 最好的是这样的:int input=0;
    object dd=Console.ReadLine(); 
    if(int.Parae(dd.ToString(),out intput)) //如果这里为true的话就是out(将你输入的dd 转化为input整数输出)这时候就可以直接调用了
    {
      Console.WriteLine("您输入的整数是{0}",intput);
    }
    else
    {
      Console.WriteLine("您输入的不是整数");}
      

  18. 我用try/catch的话铁定被老师骂死
      

类似问题 »