2014-06-09 86 views
0

請記住,我是C#的新手。如何識別字符串是否有多個字符

我想檢查一個用戶的輸入是否有不止一個字符。 具體而言,我想問用戶是否是Y/N,但是如果他們輸入「是」或「否」(或空)再次提問。

我有什麼的時刻:

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

這非常適用於用戶是否遵循指示,但是如果輸入多個字符,或按Enter鍵,將「Convert.ToChar」失敗。

+0

您可以使用'string.Length'獲取輸入的長度,但是您可以通過只接受單個字符來強制執行它,如Daniel的答案所示。 –

+0

你也可以嘗試'Convert.ToChar(Console.ReadLine()。FirstOrDefault(''));' – Grax

回答

8

你爲什麼不做Console.ReadKey()Console.Read()

.Read讀取緩衝區中的下一個字符。

+1

也許他希望他們必須按Enter鍵? – Rawling

+0

@Rawling然後這是一個後續的閱讀。 –

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不是一個字母。

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 */ } 
相關問題