如何知道字符串长度是否包含指定数量的大写字母

How to know if a string length contains a specified amount of capped letters

我想知道一个字符串是否包含 5 到 10 之间的长度,同时 7-10 个字母是大写的。这个想法是检测用户发送的消息是否有 70%-100% 的上限。

这是我目前尝试过的方法:

bool IsMessageUpper(string input)
{
    if (input.Length.Equals(5 <= 10) && (input.Take(7).All(c => char.IsLetter(c) && char.IsUpper(c))))
    {
         return true;
    }
    else
    {
         return false;
    }
}

你可以这样重写你的方法

bool IsMessageUpper(string input)
{
    int x = input.Length;
    return x>=7 && x<= 10 && input.Count(char.IsUpper) >= 7;
}

您还可以添加一些安全检查来处理不需要的输入

bool IsMessageUpper(string input)
{
    int x = (input ?? "").Length;
    return x>=7 && x<= 10 && input.Count(char.IsUpper) >= 7;
}