检查用户是否输入了文本验证 -

时间:2015-05-27 20:07:52

标签: c#

我正在尝试编写一段代码,询问用户一些文本(我到目前为止),如果用户键入一个数字,它会再次询问文本,直到用户键入文本,而不是数字

            string input;
            int value;

            Console.WriteLine("Type in some text: ");
            input = Console.ReadLine();

            if (int.TryParse(input, out value))
            {
                Console.WriteLine("Please type in some text without numbers");
            }
            else
                Console.WriteLine(input); 
            Console.ReadLine();

我认为这可能是一个循环但不确定,

任何建议都表示感谢。

2 个答案:

答案 0 :(得分:1)

尝试一下:

static void Main(string[] args)
    {
        string input;

        Console.WriteLine("Type in some text: ");
        input = Console.ReadLine();

        while(input.Any(char.IsDigit))
        {
            Console.WriteLine("Please type in some text without numbers");
            input = Console.ReadLine();
        }
    }

你是对的 - 你需要一个while循环。

您可能还有一个错误,因为文本123kjhasd不会解析为int,因此被视为有效。如果你想检查所有文本都不是数字,你可以使用LINQ,就像我上面那样。

如果我误解了,并且数字和字母组合好了,那么一定要保留你的表达:

while(int.TryParse(input, out value)

答案 1 :(得分:1)

你已经足够接近并且正确需要循环。

string input;
int value;

while (true) {
    Console.WriteLine("Type in some text: ");
    input = Console.ReadLine();

    if (!int.TryParse(input, out value))  // TryParse failed, we're good
    {
        Console.WriteLine(input);
        break;
    }

    Console.WriteLine("Please type in some text without numbers");
}