public static void nameAsk()
{
bool check = true;
while (check)
{
Console.WriteLine("What is your name?");
string name = Console.ReadLine();
int userName;
bool checkIfInt = int.TryParse(name, out userName);
if (checkIfInt)
{
Console.WriteLine("Welcome " + name + "!");
break;
}
else
{
Console.WriteLine("Please enter a name without numbers");
}
}
}
我正在尝试检查名称是否包含int,但无论我做什么,我似乎无法获得我正在寻找的输出。
我输入了以下3个输出,这些是我得到的结果:
[输入:" John2" |输出:"请输入不带数字的名称"]
[输入:" John" |输出:"请输入不带数字的名称"]
[输入:9 |输出:"欢迎9!"]
通过更改bool checkIfInt = name.Any(Char.IsDigit)修复,然后我将它放入我的if语句,但将其设置为false,如下所示:
bool checkIfInt = name.Any(Char.IsDigit);
if (!checkIfInt)
{
Console.WriteLine("Welcome " + name + "!");
break;
}
else
{
Console.WriteLine("Please enter a name without numbers");
}
}
答案 0 :(得分:6)
int.ParseInt
仅在name
为int
时才会通过,且没有其他字符。
您可以使用Any
:
if (name.Any(Char.IsDigit)) {
...
}