这里我有一些简单的C#代码;
Console.WriteLine("Enter Name");
var name = Console.ReadLine();
if (name == "ashley")
{
Console.WriteLine("You entered: " + name);
}
Console.Read();`
如果用户输入ashley,它将显示“你进入ashley”。但是,如果用户输入Ashley或AsHlEy,则无法使用。我需要添加什么或如何格式化,以便忽略这种情况?
答案 0 :(得分:3)
String.Compare
采用布尔参数,允许您在比较期间忽略套管:
Console.WriteLine("Enter Name");
var name = Console.ReadLine();
if (String.Compare(name, "ashley", true) == 0)
{
Console.WriteLine("You entered: " + name);
}
Console.Read();
答案 1 :(得分:3)
将string.Equals
与适当的StringComparison
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);
答案 2 :(得分:0)
改变这个:
if (name == "ashley")
到此:
if (name.ToLower() == "ashley")
答案 3 :(得分:0)
像这样使用ToLower:
Console.WriteLine("Enter Name");
var name = Console.ReadLine();
if (name.ToLower() == "ashley")
{
Console.WriteLine("You entered: " + name);
}
Console.Read();`
答案 4 :(得分:0)
您可以使用String.ToLower方法
您的测试将是:if (name.ToLower() == "ashley")