2014-11-06 35 views
-1

我有一個關於驗證用戶輸入是字符串的問題。使用If-else函數進行字符串驗證

我有一個字符串變量中,並有readLine(),但運行時:

 Console.WriteLine("Start by typing 'hello'"); 

     String activity = Console.ReadLine(); 

     if ("hello".Equals(activity)) 
     { 
      Console.WriteLine("Hi!"); 
     } 
     else 
     { 
      Console.WriteLine("Please try again."); 
      WakeUp(); 
     } 

我改變了一些話,但它提出了我想要使用的例子。

無論用戶輸入什麼,它總是返回else{}聲明。

有什麼我失蹤?獲取和驗證用戶輸入的更好方法?

對不起,有任何混淆。如果這還不夠詳細信息,我可以編輯併發布我的確切代碼。

因此,如果不創建新帖子,我會如何將它寫入switch語句中?

switch (activity){ 
case "hello": console.WriteLine("HI!"); 
    break; 
case "bye": Console.WriteLine("Goodbye."); 
    break; 
default: Console.WriteLine("Please try again."); 
+1

顯示您的實際代碼 – Jonesopolis 2014-11-06 03:29:07

+0

你的變量不等於‘用戶輸入’即可。 'if/else'機制沒有錯誤。如果我們沒有看到實際的輸入,我們無法真正幫助。 – 2014-11-06 03:29:20

+0

您是否使用調試器來查看'if'語句時'variable'的值是什麼? – Matthew 2014-11-06 03:29:27

回答

0

此示例是否幫助您找到某個問題?

Console.WriteLine("type 'q' to quit"); 

while (true) 
{ 
    string input = Console.ReadLine(); 
    if (input == "q") 
    { 
    break; 
    } 
    else 
    { 
    Console.WriteLine("You entered '{0}'", input); 
    } 
} 
+0

如果這是一個新手問題,我很抱歉,但{0}是什麼意思? – Christopher 2014-11-06 03:38:47

0

你的樣品對我來說工作得很好。比較字符串時,根據您的意圖可能會有用 - 降低套管並修剪空白。 (「你好」並不等於‘你好’)

Console.WriteLine("Start by typing 'hello'"); 
String activity = Console.ReadLine(); 

activity = activity.Trim().ToLower(); // try adding this line 

if ("hello".Equals(activity)) 
    Console.WriteLine("Hi!"); 
else 
{ 
    Console.WriteLine("Please try again."); 
    WakeUp(); 
} 
+0

一定會試試看,謝謝! – Christopher 2014-11-06 04:24:29