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,但不管我做什么,我似乎无法得到我期待的输出。检查一个字符串是否包含一个int
我已经输入了以下3个输出,这些都是结果我得到:
[输入:“John2” |输出:“请输入一个没有数字的名字”]
[输入:“John”| |输出:“请输入一个没有数字的名称”]
[输入:9 |输出: “欢迎9”]
通过改变布尔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");
}
}
应该'John2'失败,因为它包含一个'int',还是应该把它传递,因为它并不完全是' int'? – dasblinkenlight
[检查一个字符串中是否至少有一个使用LINQ的数字]的可能重复(https://stackoverflow.com/questions/1540620/check-if-a-string-has-at-least-one-number- in-it-using-linq) –
或[在C#中,如何检查一个字符串是否包含整数?](https://stackoverflow.com/questions/18251875/in-c-how-to-check-whether- a-string-contains-an-integer) –