【问题标题】:Check if all letters are lowercase or uppercase [duplicate]检查所有字母是小写还是大写[重复]
【发布时间】:2021-08-15 22:43:42
【问题描述】:

基本上我只是想检查用户输入是全部大写还是小写。 目前我的问题是代码每次迭代都返回true1或true2,如果输入都是大写的,那么第一个for循环会进入下一个循环,因为没有一个字母是小写的,所以返回false。对不起,如果这个问题格式不正确,我是新手。


namespace CheckifSameCase
{
    class Program
    {
        static void Main(string[] args)
        {
            //Initialize user input as var "input".
            string str = Console.ReadLine();
            char[] characters = str.ToCharArray();

            //This for loop iterates through the user input and checks if all letters are uppercase.
            //if not all letters are uppercase then the loop breaks to the next loop.
            for (int i = 0; i < characters.Length; i++)
            {
                if (char.IsUpper(characters[i]))
                {
                    Console.WriteLine("True1");
                }
                else
                {
                    break;
                }
            }

            //This for loop checks for lowcase letters and returns false if all letters aren't lowercase.
            for (int i = 0; i < characters.Length; i++)
            {
                if (char.IsLower(characters[i]))
                {
                    Console.WriteLine("True2");
                }
                else
                {
                    Console.WriteLine("False");
                    break;
                }
            }

        }
    }
}

【问题讨论】:

  • @oliverr 他们想检测它是全大写、全小写还是混合,所以这并不能真正回答他们的问题。似乎他们了解如何根据自己的代码检测所有大写字母
  • @OwenKuhn str.All(c =&gt; char.IsUpper/IsLower(c))str.All(c =&gt; char.IsLower(c))the job。当然,如果我们需要这样的事情,一个优化的手工循环来标记/取消标记 allLower 和 allUpper 也可以不用解析两次字符串......我没有时间写它。我误解了这个问题吗?

标签: c# for-loop


【解决方案1】:

我不了解 C#,但这是一种方法。只需检查第一个字符是否为大写所有其他字符都应为大写或打印为 false。如果第一个字符是小写的,那么所有其他字符都应该是小写的,否则打印为 false。 然后,如果您到达程序的末尾(没有返回),您可以查看它是全大写还是全小写并相应地打印。

bool isUpper = char.isUpper(characters[0]);
for(int i = 0; i < characters.Length; i++) {
    if(isUpper != char.isUpper(characters[i])) {
        Console.WriteLine("False");
        return;
    }
}
if(isUpper) {Console.WriteLine("True1");}
else {Console.WriteLine("True2");}

【讨论】:

    猜你喜欢
    • 2021-08-12
    • 2014-02-12
    • 2011-02-18
    • 1970-01-01
    • 2018-02-03
    • 2015-04-23
    • 1970-01-01
    • 1970-01-01
    • 2018-06-17
    相关资源
    最近更新 更多