В настоящее время я самостоятельно учил себя C# и имел довольно приличное понимание, но я потерял, как проверить, что только пользователь вводит один ответ на слово и что он капитализирован в противном случае, я хочу дать им еще один шанс попробовать.Подтверждающий пользователь вводит только один ответ на слово и что первая буква заглавная
Это то, что я до сих пор:
static void Main(string[] args)
{
//assigned variable
string userInput;
//intializing empty string
string answerInput = string.Empty;
//Creating loop
while ((answerInput == string.Empty) || (answerInput == "-1"))
{
//This is asking the question to the user
Console.WriteLine("Enter your favorite animal: ");
//this is storing users input
userInput = Console.ReadLine();
//using function to validate response
answerInput = letterFunc(userInput);
}
}
//Creating function to only allow letters and making sure it's not left blank.
private static string letterFunc (string validate)
{
//intializing empty string
string returnString = string.Empty;
//validating it is not left empty
if(validate.Length > 0)
{
//iterating through the passed string
foreach(char c in validate)
{
//using the asciitable to validate they only use A-Z, a-z, and space
if ((((Convert.ToInt32(c)) > 64) && ((Convert.ToInt32(c)) < 91)) || (((Convert.ToInt32(c)) > 96) && ((Convert.ToInt32(c)) < 123)) || (Convert.ToInt32(c) == 32))
{
//appensing sanitized character to return string
returnString += c;
}
else
{
//If they try to enter a number this will warn them
Console.WriteLine("Invalid input. Use letters only.");
}
}
}
else
{
//If user enters a blank input, this will warn them
Console.WriteLine("You cannot enter a blank response.");
}
//returning string
return returnString;
}
мне было интересно, если это возможно сделать это внутри функцию я создал, чтобы проверить их использовать только букву и что это не является пустым с подробным объяснением. Благодарю.
Смотрите в регулярные выражения, это должно быть в состоянии делать то, что вы хотите – maccettura
не являются регулярными выражения избыточны для выполнения этой задачи? Это ответ на один вопрос, если текст не содержит пробела, а 'char.IsUpper()' может проверить первую букву в верхнем регистре. – stuartd
Я думаю, что ваш метод является избыточным по сравнению с RegExp. Кроме того, никогда, хотя я бы сказал это, но я думаю, что регулярные выражения будут более понятными, чем ваш текущий метод. =) –