首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在C#中使字符串输入不区分大小写?

如何在C#中使字符串输入不区分大小写?
EN

Stack Overflow用户
提问于 2019-04-19 01:23:55
回答 2查看 2.4K关注 0票数 -4

因此,在我学习C#的过程中,我试图创建一个交互式的故事,它会根据用户提交的一些输入进行更改。在这种情况下,如果用户输入"Bobby“,讲述者就会开始像Hank Hill那样说话。然而,根据它的编程方式,输入是区分大小写的。

我已经尝试了我看到的一个建议,即将if语句格式化为:

if (boyName.ToUpper() == "Bobby")

但这不会触发具有不同字母大小写的if命令

 Console.WriteLine($"{beginning} \n What was the boy's name?");
 boyName = Console.ReadLine();
  if (boyName == "Bobby")
   {
   Console.WriteLine("That boy ain\'t right, I tell ya what... ");
   Console.ReadKey();
   Console.WriteLine($"{boyName} boy dang climbed a big ol' tree..."); 
   Console.ReadKey();
   }

   else
    {
    Console.WriteLine($"The kid named {boyName} climbed a tree...");
    Console.ReadKey();
    }

我希望有一行代码,无论情况如何,都会触发if条件。然而,我所尝试的一切并没有改变这一点。它需要明确为"Bobby“,否则将触发else条件。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-04-19 01:28:18

你应该试试

if (boyName.ToUpper() == "Bobby".ToUpper())
票数 1
EN

Stack Overflow用户

发布于 2019-04-19 02:51:33

在技术上,最好使用不区分大小写的比较,而不是更改要比较的字符串的大小写,因为对于所有语言(字母表),ToUpper()并不总是像预期的那样工作(从比较的角度来看)。有关更多信息,请参阅this article on case folding中的“土耳其语'i'”部分。

要在不修改原始字符串的情况下解决问题,可以使用String.Equals方法,该方法接受要比较的字符串的参数以及指定要使用的比较类型的参数。

因此,您的代码可能如下所示:

if (string.Equals(boyName, "Bobby", StringComparison.OrdinalIgnoreCase))

或者您可以使用实例方法版本,它稍微短一些:

if (boyName.Equals("Bobby", StringComparison.OrdinalIgnoreCase))
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55750996

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档