检查字符串是否包含int

时间:2017-09-16 21:59:14

标签: c#

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");
}
}

1 个答案:

答案 0 :(得分:6)

int.ParseInt仅在nameint时才会通过,且没有其他字符。

您可以使用Any

检查字符串是否包含LINQ中的任何数字
if (name.Any(Char.IsDigit)) {
    ...
}