C# 如何识别字符串是否有多个字符

C# 如何识别字符串是否有多个字符,c#,C#,记住,我是C#的新手 我想检查用户的输入是否不止一个字符。 具体地说,我希望要求用户输入是/否,但如果他们键入“是”或“否”(或null),则再次询问他们 我现在所拥有的: char guess; Console.WriteLine("Please enter a letter"); guess = Convert.ToChar(Console.ReadLine()); 如果用户按照说明操作,则此操作非常有效,但如果输入了多个字符或按Enter键,则“Convert.ToChar”将失败。为什

记住,我是C#的新手

我想检查用户的输入是否不止一个字符。 具体地说,我希望要求用户输入是/否,但如果他们键入“是”或“否”(或null),则再次询问他们

我现在所拥有的:

char guess;
Console.WriteLine("Please enter a letter");
guess = Convert.ToChar(Console.ReadLine());
如果用户按照说明操作,则此操作非常有效,但如果输入了多个字符或按Enter键,则“Convert.ToChar”将失败。

为什么不执行或


.Read
读取缓冲区中的下一个字符。

我仍然更喜欢
ReadLine()
而不是
Read()
,用户在完成键入后按
Enter
更自然。使用
Read()
方法,您还必须处理
Backspace
,因此它变得更加复杂。提出了如下建议:

Console.WriteLine("Please enter a letter");

string input;
while(true)
{
  input = Console.ReadLine();
  if (input.Length == 1) { break; }
  Console.WriteLine("Invalid input");        
}

char guess = input[0];

注意,在上面您可以轻松添加更多验证,例如0-9不是一个字母。

在上面使用大于或小于的语句

string input = Console.ReadLine();
if(input.Length > 1) { Console.WriteLine("Message"); Console.ReadLine(); } // If its bigger then 1 
else { /* if it is one letter do code here */ }

也许他想让他们必须按enter键?你可以使用
string.length
来获取输入的长度,但是你可以按照Daniel的回答,只接受一个字符来强制输入。你也可以尝试
Convert.ToChar(Console.ReadLine().FirstOrDefault(“”))