如何防止用户输入字符串空间?

时间:2019-04-06 20:49:02

标签: c#

这就是我所拥有的:

if (userVar == " ")
{
    Console.WriteLine("stop");
}

确定,但是只能处理一个间距。如果用户在控制台中按下2个空格,3个空格,100个空格怎么办,我该如何为所有这些空格做出if语句?

5 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

为了检查字符串中的每个字符是否都是空格,您可以执行以下操作:

if(userVar.All(x => x == " "))
{
    Console.WriteLine("stop");
}

或者,如果您不想使用lambda,则可以使用以下功能相对容易地做到这一点:

public static boolean IsAllSpaces(string input)
{
    if(input == null || input == String.Empty)
    {
        return false;
    }
    foreach(char c in input)
    {
        if(c != " ")
        {
            return false;
        }
    }
    return true;
}

请注意,如果字符串为null,则第一个将引发异常,而第二个将返回false。根据您的意愿,这是您的最佳选择,您可以在第一个示例中检查是否为null,然后再调用All

答案 2 :(得分:0)

if (userVar.length > 0 && String.IsNullOrEmpty(userVar.Trim())
{
    Console.WriteLine("stop");
}

它有角色,它们只是空间...

答案 3 :(得分:0)

像这样使用它:

if (String.IsNullOrWhiteSpace(userVar))
{
    Console.WriteLine("stop");
}

根据文档:如果value参数为null或Empty,或者value由排除空格字符组成,则返回true。

答案 4 :(得分:-1)

好吧,如果您不希望有单个空间。您可以使用string.Conatins()函数。

if (userVar.Contains(" "))
{
    Console.WriteLine("stop");
}

注意::无论用户输入1 space还是100,它都会检测到。