2016-03-24 50 views
1

我想創建一個程序,要求我對用戶輸入進行驗證,只接受給定數組中的字母5 。所以基本上,如果我是用戶,我不允許輸入數字或特殊字符,如果我這樣做,我會得到一個錯誤。有人可以幫我解決這個問題嗎?我嘗試了各種各樣的搜索,我一直無法找到解決方案。我感謝任何幫助,我可以得到。 這是我迄今爲止。如何用字母(az)請求用戶輸入沒有特殊字符或數字在C#

class Program 
{ 
    static void Main(string[] args) 
    { 
     char[] arr = new char[5]; 

     //User input 
     Console.WriteLine("Please Enter 5 Letters only: "); 

     for (int i = 0; i < arr.Length; i++) 
     { 
      arr[i] = Convert.ToChar(Console.ReadLine()); 
     } 
     //display 
     for(int i = 0; i<arr.Length; i++) 
     { 
      Console.WriteLine("You have entered the following inputs: "); 
      Console.WriteLine(arrArray[i]); 
     } 
    } 
} 
+0

您可以閱讀答案這裏http://stackoverflow.com/questions/6017778/c -sharp-regex-checking-for-az-and-az – duyanhphamkiller

+0

你已經在2天內提出了相同的問題4次;請查詢[StackOverflow幫助](http://stackoverflow.com/help)提問。 [2 days ago](http://stackoverflow.com/questions/36191717),[1天前](http://stackoverflow.com/questions/),[4小時前](http:// stackoverflow。 com/questions/36239820),[1小時前](http://stackoverflow.com/questions/36241502) –

回答

0
char[] arr = new char[5]; 

      //User input 
      Console.WriteLine("Please Enter 5 Letters only: "); 
      string s = "abcdefghijklmnopqrstuvwxyz"; 
      for (int i = 0; i < arr.Length;) 
      { 
       string sChar = Console.ReadLine().ToLower(); 
       if (s.Contains(sChar) && sChar.Length == 1) 
       { 
        arr[i] = Convert.ToChar(sChar); 
        i++; 
       } 
       else 
       { 
        Console.WriteLine("Please enter a character from A-Z"); 
        continue; 
       } 
      } 
      //display 
      for (int i = 0; i < arr.Length; i++) 
      { 
       Console.WriteLine("You have entered the following inputs: "); 
       Console.WriteLine(arr[i]); 
      } 

enter image description here

+0

感謝您的解決方案。這個解決方案非常有意義。試圖弄清楚這一點,我的頭痛了4天。再次感謝! – KhaosProgrammer

0

,我建議使用一個正則表達式(正則表達式)。

對於數字和字母,正確的正則表達式是:

string numbersLettersRegex = @"^[a-zA-Z0-9\_]+$" 

然後你只需要覈對該正則表達式:

if (Regex.isMatch(numbersLettersRegex, arr[i] 
{ 
    //do stuff 
} 

else 
{ 
    //print error Message 
} 
+0

我一直在尋找很多使用正則表達式的解決方案,但這並不是我們已經涉及的內容,我仍然對使用正則表達式的細節模糊不清。但感謝您的幫助! – KhaosProgrammer

0

通過您的字符串你想在驗證這個FUNC :

public bool checkYo(String myString) 
{ 
    return Regex.IsMatch(myString, @"^[a-zA-Z]+$"); 
} 

這將檢查az和AZ ..如果你想只是az,只是擺脫AZ部分從上面的f結。 希望這有助於。

0

試試這個

靜態無效的主要(字串[] args){

char[] arr = new char[5]; 
Console.WriteLine("Please Enter 5 Letters only: "); 
string inputstring = Console.ReadLine(); 

if (Regex.IsMatch(inputstring, @"^[a-zA-Z]+$")) 
{ 
    arr = inputstring.ToCharArray(); 
    Console.WriteLine("You have entered the following inputs: "); 

    //display 
    for (int i = 0; i < arr.Length; i++) 
    { 
     Console.Write(arr[i]); 
    } 
    Console.ReadLine(); 
} 
else 
{ 
    Console.WriteLine("Enter valid inputs and try again"); 
    Console.ReadLine(); 
} 

}

相關問題