A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

C#中让用户输入一个值判断用户输入的是不是数字 如果不是数字则做相应处理 如何实现

评分

参与人数 1技术分 +1 收起 理由
杞文明 + 1

查看全部评分

11 个回复

倒序浏览
  1. bool flag = true;
  2.             
  3.                 while (flag)
  4.                 {
  5.                     try
  6.                     {
  7.                         Console.WriteLine("请输入数字");
  8.                         int number = Convert.ToInt32(Console.ReadLine());
  9.                         flag = false;
  10.                         Console.WriteLine("你输入的是:{0}",number);
  11.                     }
  12.                     catch
  13.                     {
  14.                         Console.WriteLine("你输入的不是数字请重新输入!");
  15.                     }
  16.                 }
  17.             
  18.            
  19.                

  20.             Console.ReadKey();
复制代码

评分

参与人数 1技术分 +1 收起 理由
杞文明 + 1

查看全部评分

回复 使用道具 举报
我做的是通过try catch  然后循环来实现的, 刚看到这里, 不知道是不是你需要的
回复 使用道具 举报
使用int.TryParse(输入的值)转换,转换成功就是数字,不是再做你想要才处理。
回复 使用道具 举报
可通过数字类型的tryParse方法来判断,例如输入整数:

        /// <summary>
        /// 从控制台获取整型数字
        /// </summary>
        /// <returns></returns>
        static int GetIntNumber()
        {
            string inputStr;
            int intNumber;
            //无限循环,直到输入正确的整型数字
            while (true)
            {
                inputStr = Console.ReadLine();
                //当是整数
                if (int.TryParse(inputStr, out intNumber))
                {
                    return intNumber;
                }
                else
                {
                    Console.WriteLine("请输入整型数字");
                }
            }
        }

评分

参与人数 1技术分 +1 收起 理由
杞文明 + 1

查看全部评分

回复 使用道具 举报
  1.         static int ReadInt(int min, int max)
  2.         {
  3.             while (true)
  4.             {
  5.                 try
  6.                 {
  7.                     int number = Convert.ToInt32(Console.ReadLine());
  8.                     if (number < min || number > max)
  9.                     {
  10.                         Console.WriteLine("只能输入{0}~{1}之间的数字", min, max);
  11.                         continue;
  12.                     }
  13.                     return number;
  14.                 }
  15.                 catch
  16.                 {
  17.                     Console.WriteLine("只能输入数字,请重新输入!");
  18.                 }
  19.             }
  20.         }
复制代码
回复 使用道具 举报
static int ReadInt(int min,int max)
        {
            while(true)
            {
                try
                {
                    int number = Convert.ToInt32(Console.ReadLine());
                    if(number<min || number>max)
                    {
                        Console.WriteLine("只能输入{0}到{1}的数字", min, max);
                        continue;
                    }
                    return number;
                }
                    catch
                {
                        Console.WriteLine("只能输入数字,请重新输入");
                    }
            }
        }一般都用try-catch判断
回复 使用道具 举报
kelline 发表于 2013-3-31 13:29
我做的是通过try catch  然后循环来实现的, 刚看到这里, 不知道是不是你需要的 ...

try....catch..尽量不要用。或者说慎用吧!杨老师视频介绍有异常处理的
回复 使用道具 举报
张正强 发表于 2013-3-31 16:52

麻烦你好好的看一哈以后的问题!!  不要把视频中的代码直接复制过来
回复 使用道具 举报
↖落葉下♀媃媚 发表于 2013-3-31 17:38
static int ReadInt(int min,int max)
        {
            while(true)

麻烦你好好的看一哈以后的问题!!  不要把视频中的代码直接复制过来
回复 使用道具 举报
using System.Text.RegularExpressions;

    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("请输入:");
            string input = Console.ReadLine();
            if (Regex.IsMatch(input, @"^-?\d+\.?\d+$"))
            {
                Console.WriteLine("是数字");
            }
            else {
                Console.WriteLine("不是数字");
            }
            Console.ReadKey();
        }
}
回复 使用道具 举报
Regex.IsMatch(输入的值, 正则表达式)
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马