如何验证控制台输入为整数?

如何验证控制台输入为整数?

我已经编写了我的代码,我想以这样的方式对其进行验证,它只允许插入内容而不是字母。这是代码,请你帮助我。谢谢。

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace minimum{
    class Program
    {
        static void Main(string[] args)
        {
            int a = Convert.ToInt32(Console.ReadLine());
            int b = Convert.ToInt32(Console.ReadLine());
            int c = Convert.ToInt32(Console.ReadLine());

            if (a < b)
            {
                if (a < c)
                {
                    Console.WriteLine(a + "is the minimum number");
                }
            }
            if (b < a)
            {
                if (b < c)
                {
                    Console.WriteLine(b + "is the minimum number");
                }
            }
            if (c < a)
            {
                if (c < b)
                {
                    Console.WriteLine(c + "is the minimum number");
                }
            }


            Console.ReadLine();
        }
    }}


白衣染霜花
浏览 513回答 3
3回答

慕哥6287543

您应该测试它是否为int而不是立即转换。尝试类似的东西:string line = Console.ReadLine();int value;if (int.TryParse(line, out value)){&nbsp; &nbsp;// this is an int&nbsp; &nbsp;// do you minimum number check here}else{&nbsp; &nbsp;// this is not an int}

温温酱

只需调用Readline()并使用Int.TryParse循环,直到用户输入有效数字:)int&nbsp;X;String&nbsp;Result&nbsp;=&nbsp;Console.ReadLine();while(!Int32.TryParse(Result,&nbsp;out&nbsp;X)){ &nbsp;&nbsp;&nbsp;Console.WriteLine("Not&nbsp;a&nbsp;valid&nbsp;number,&nbsp;try&nbsp;again."); &nbsp;&nbsp;&nbsp;Result&nbsp;=&nbsp;Console.ReadLine();}希望有所帮助

有只小跳蛙

要让控制台过滤掉按字母顺序排列的键击,您必须接管输入解析。Console.ReadKey()方法是这个的基础,它可以让你嗅到按下的键。这是一个示例实现:&nbsp;&nbsp;&nbsp;&nbsp;static&nbsp;string&nbsp;ReadNumber()&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;buf&nbsp;=&nbsp;new&nbsp;StringBuilder(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(;&nbsp;;&nbsp;)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;key&nbsp;=&nbsp;Console.ReadKey(true); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(key.Key&nbsp;==&nbsp;ConsoleKey.Enter&nbsp;&&&nbsp;buf.Length&nbsp;>&nbsp;0)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;buf.ToString()&nbsp;; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;if&nbsp;(key.Key&nbsp;==&nbsp;ConsoleKey.Backspace&nbsp;&&&nbsp;buf.Length&nbsp;>&nbsp;0)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buf.Remove(buf.Length-1,&nbsp;1); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.Write("\b&nbsp;\b"); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;if&nbsp;("0123456789.-".Contains(key.KeyChar))&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;buf.Append(key.KeyChar); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.Write(key.KeyChar); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Console.Beep(); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;}您可以在if()语句中添加Decimal.TryParse(),该语句检测Enter键以验证输入的字符串是否仍然是有效数字。这样你可以拒绝像“1-2”这样的输入。
打开App,查看更多内容
随时随地看视频慕课网APP