C#do while在字符串中输入大写和小写字母

时间:2018-06-10 11:23:12

标签: c# equals do-while

C#做问题。

我想要的是在源代码中以大写,小写字母终止Q或q的能力。

我引用了MSDN,但它没有成功,所以我在这里有一个问题。

谢谢。

using System;

namespace Try
{
    class Program
    {
        static void Main(string[] args)
        {
            string str1 = "Q";
            string str2 = "q";

            if (str1.Equals(str2, StringComparison.OrdinalIgnoreCase)) { }

            string menu = "";

            do
            {
                Console.WriteLine("Select Meun:(1)Triangle (2)Rectangle " +
                                  "(Q)Quit",string.Equals
                                  (str1, str2, StringComparison.CurrentCultureIgnoreCase));

                menu = Console.ReadLine();

                Console.WriteLine(menu + "is selected");
            } while (menu != "Q");
        }
     }
}

1 个答案:

答案 0 :(得分:3)

选项1

while (!string.Equals(menu, "Q", StringComparison.OrdinalIgnoreCase));

正如StringComparision建议的那样,这将忽略这种情况并将q和Q视为相同。

static void Main(string[] args)
{
    string str1 = "Q";
    string str2 = "q";

    if (str1.Equals(str2, StringComparison.OrdinalIgnoreCase)) { }

    string menu = "";

    do
    {
        Console.WriteLine("Select Meun:(1)Triangle (2)Rectangle " +
                "(Q)Quit",string.Equals
                (str1, str2, 
                StringComparison.CurrentCultureIgnoreCase));

        menu = Console.ReadLine();

        Console.WriteLine(menu + "is selected");
    } while (!string.Equals(menu, "Q", StringComparison.OrdinalIgnoreCase));
}

选项2

while (menu.ToUpper() != "Q") 

这会将变量菜单中的任何内容转换为大写。它更容易阅读和完成工作,我个人更喜欢这种方法。

static void Main(string[] args)
{
    string str1 = "Q";
    string str2 = "q";

    if (str1.Equals(str2, StringComparison.OrdinalIgnoreCase)) { }

    string menu = "";

    do
    {
        Console.WriteLine("Select Meun:(1)Triangle (2)Rectangle " +
                "(Q)Quit",string.Equals
                (str1, str2, 
                StringComparison.CurrentCultureIgnoreCase));

        menu = Console.ReadLine();

        Console.WriteLine(menu + "is selected");
    } while (menu.ToUpper() != "Q");
}

<强> Addtional 下面的示例还使用了switch语句,如果您计划将来有很多选项,那么这些语句很棒且易于阅读:

do
{
    Console.WriteLine("Select Menu:(1)Triangle (2)Rectangle (Q)Quit");

     menu = Console.ReadLine();
     switch (menu.ToUpper())
     {
         case "1":
            //DO SOME CODE
            break;
         case "2":
            //DO SOME CODE
            break;
         case "Q":
            return;
         }

         Console.WriteLine(menu + " is selected");
 } while (true);

或者这个方法没有使用任何StringComparison或ToUpper,如果你想要单独的大写和小写命令,或者你不想进行任何额外的转换/检查,那么它将会被使用。

do
{
      Console.WriteLine("Select Menu:(1)Triangle (2)Rectangle (Q)Quit");

      menu = Console.ReadLine();
      switch (menu)
      {
          case "1":
             //DO THIS
             break;
          case "2":
             //DO THAT
             break;
          case "q":
          case "Q":
             return;
      }

      Console.WriteLine(menu + " is selected");
} while (true);