c#中的数字字符串验证

时间:2014-01-21 18:27:06

标签: c# string boolean tryparse

我正在尝试验证'columnsValidation'是否为数字字符串,并将其转换为int,如果是的话。

出于某种原因,我最终陷入无休止的循环,因为'isNumber'总是等于假......

此代码是我的彩票项目的一部分。

我希望我的问题很清楚,如果需要更多信息,请告诉我,我会回答。

提前致谢, 宜兰。

Console.WriteLine("Please insert the number of rows: ");

        string columnsValidation = Console.ReadLine();

        bool isNumber = false;

            while(isNumber == false)
            {
                bool.TryParse(columnsValidation, out isNumber);
                if (isNumber == true)
                    columns = int.Parse(columnsValidation);
                else
                {
                    Console.WriteLine("You've inserted an invalid value, please try again.");
                    columnsValidation = Console.ReadLine();
                }
            }

3 个答案:

答案 0 :(得分:2)

更正您对TryParse

的使用情况
isNumber = int.TryParse(columnsValidation, out columns);

TryParse返回boolean,指示解析是否成功,如果成功,则设置out param和解析结果。

答案 1 :(得分:2)

您需要将int.TryParsecolumnsValidation

一起使用
if (!int.TryParse(columnsValidation,out columns)
{
     Console.WriteLine("You've inserted an invalid value, please try again.");
     columnsValidation = Console.ReadLine();
}
else
{ 
    isNumber = true;
}

答案 2 :(得分:0)

为什么不使用Int.TryParse

int columns = 0;

while(true)
{
    if (!Int32.TryParse(columnsValidation,out columns)
    {
        Console.WriteLine("You've inserted an invalid value, please try again.");
        columnsValidation = Console.ReadLine();
    }
    else
    {
        break;
    }
}