我对字符串和int感到困惑。并且不能验证名称是没有数字和奇怪的特征。 a-z和A-Z都很好。我理解while循环和哨兵的使用。我在这里看到了正则表达式,但由于某种原因,我的代码无法工作。我宁愿选择一种我能理解的简单解决方案。我在我的代码中验证int的效果很好,但验证名称会得到bool和int错误。字符串字母验证
static void Main(string[] args)
{
int age;
double mileage;
string strInput, name;
bool isValid;
DisplayApplicationInformation();
DisplayDivider("Start Program");
Console.WriteLine();
DisplayDivider("Get Name");
strInput = GetInput("your name");
name = strInput;
Console.WriteLine("Your name is: " + name);
Console.WriteLine();
do
{
DisplayDivider("Get Age");
strInput = GetInput("your age");
isValid = int.TryParse(strInput, out age);
if (!isValid || (age <= 0))
{
isValid = false;
Console.WriteLine("'" + strInput + "' is not a valid age entry. Please retry...");
}
}while (!isValid);
Console.WriteLine("Your age is: " + age);
//age = int.Parse(strInput);
//Console.WriteLine("Your age is: " + age);
Console.WriteLine();
do
{
DisplayDivider("Get Mileage");
strInput = GetInput("gas mileage");
isValid = double.TryParse(strInput, out mileage);
if (!isValid || (mileage <= 0))
{
isValid = false;
Console.WriteLine("'" + strInput + "' is not a valid mileage entry. Please retry...");
}
} while (!isValid);
Console.WriteLine("Your age is: " + mileage);
//mileage = double.Parse(strInput);
//Console.WriteLine("Your car MPT is: " + mileage);
TerminateApplication();
}
向我们展示你试图验证名称是什么线。 – antlersoft
你能进一步解释你提到的错误吗?你在代码中得到了实际的例外吗?如果是这样,它们是什么,它们在哪里发生,以及它们发生时的数据状态如何?如果没有实际的错误,错误的指示是什么?预期的行为与观察到的行为有什么不同?代码中的哪两个位置有偏差? – David
如果你可以向自己介绍一下正则表达式,它比你试图尝试的简单得多;) – craig1231