我正在尝试创建一个程序,要求我对用户输入进行验证,只接受给定数组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]);
}
}
}
答案 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]);
}
答案 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();
}
}