如何在C#中没有特殊字符或数字的情况下用字母(a-z)询问用户输入

时间:2016-03-24 01:26:20

标签: c#

我正在尝试创建一个程序,要求我对用户输入进行验证,只接受给定数组5中的字母。所以基本上如果我是用户,我不允许输入数字或特殊字符,如果我这样做,我会得到一个错误。有人可以帮我解决这个问题吗?我尝试了各种搜索,但我找不到解决方案。我感谢任何帮助。 这就是我到目前为止所做的。

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]);
        }
    }
}

4 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

我建议使用正则表达式(正则表达式)。

对于数字和字母,正确的正则表达式是:

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

然后,您只需检查该Regex:

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

else 
{
    //print error Message
}

答案 2 :(得分:0)

传递你的字符串,你正试图验证这个功能:

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

这将检查a-z和A-Z ..如果你只需要a-z,只需从上面的函数中删除A-Z部分。 希望这有帮助。

答案 3 :(得分:0)

试试这个

static void Main(string [] 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();
}

}

相关问题