如何使 c# 忽略字母大小写

本文关键字:大小写 何使 | 更新日期: 2023-09-27 18:30:43

这里有一些简单的C#代码;

Console.WriteLine("Enter Name");
var name = Console.ReadLine();
if (name == "ashley")
{
    Console.WriteLine("You entered: " + name);
}
Console.Read();`

如果用户输入 ashley,它将显示"您输入了 ashley"。但是,如果用户输入 Ashley 或 AsHlEy 它将无法工作。我需要添加什么或如何格式化以使其忽略大小写?

如何使 c# 忽略字母大小写

string.Equals与适当的 StringCompare 一起使用

if (string.Equals(name, "ashley", StringComparison.CurrentCultureIgnoreCase))
{
   ...
}

如果您知道变量不为 null,您也可以使用

if (name.Equals("ashley", StringComparison.CurrentCultureIgnoreCase))
{
   ...
}

要在评论中回答您的问题,可以使用do-while循环进行循环,直到正确回答问题。 以下内容将循环,直到用户输入 ashley 以外的内容。

string name;
do
{
     Console.WriteLine("Enter Name");
     name = Console.ReadLine();
}
while (string.Equals(name, "ashley", StringComparison.CurrentCultureIgnoreCase));

如果你想要不同的消息传递,你可以把它与一个保护变量结合起来:

string name;
bool nameIsCorrect = false;
do
{
     Console.WriteLine("Enter Name");
     name = Console.ReadLine();
     nameIsAshley = string.Equals(name, "ashley", StringComparison.CurrentCultureIgnoreCase);
     if (nameIsAshley)
     {
        Console.WriteLine("Stop entering 'ashley'");
     }
}
while (!nameIsAshley);

String.Compare采用一个布尔参数,该参数允许您在比较过程中忽略大小写:

Console.WriteLine("Enter Name");
var name = Console.ReadLine();
if (String.Compare(name, "ashley", true) == 0)
{
    Console.WriteLine("You entered: " + name);
}
Console.Read();

更改以下内容:

if (name == "ashley")

对此:

if (name.ToLower() == "ashley")

像这样使用 ToLower:

Console.WriteLine("Enter Name");
var name = Console.ReadLine();
if (name.ToLower() == "ashley")
{
    Console.WriteLine("You entered: " + name);
}
Console.Read();`

您可以使用 String.ToLower 方法

您的测试将是:if (name.ToLower() == "ashley")