如何识别字符串是否包含多个字符

时间:2014-06-09 14:08:25

标签: c#

请记住我是C#的新手。

我希望检查用户的输入是否只有一个字符。 具体来说,我希望询问用户是否有Y / N,但如果他们输入“是”或“否”(或为空)再次询问他们。

我现在所拥有的:

char guess;
Console.WriteLine("Please enter a letter");
guess = Convert.ToChar(Console.ReadLine());

如果用户按照说明操作,这很有效,但如果输入了多个字符,或者按下Enter键,则“Convert.ToChar”会失败。

3 个答案:

答案 0 :(得分:8)

为什么不进行Console.ReadKey()Console.Read()

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

答案 1 :(得分:1)

我仍然更喜欢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不是字母。

答案 2 :(得分:0)

使用大于或小于那的语句。

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 */ }