所以,我正在做一個學校比薩計劃,要求客戶的詳細信息,如姓名電話號碼和地址。我想讓客戶在填寫地址時必須有號碼,空格和字母,我已經創建了一個應該出錯並告訴客戶他們的地址是無效的方法,但是這種方法似乎並沒有工作得很好。請幫助地址創建功能c#
這裏是代碼我目前的方法:
public static string ReadAddress(String prompt) // YOU DIDN'T SPELL THIS CORRECTLY
{
string userInput = " ";
bool success = false;
while (!success)
{
Console.Write(prompt);
try
{
userInput = Console.ReadLine();
if (userInput.Length <= 70 && userInput.Length > 8) //checks the length of the user input
{
success = true; //Assumes input is correct
bool letter = false;
bool space = false;
bool number = false;
foreach (char character in userInput)
{
letter = Char.IsLetter(character);
space = Char.IsWhiteSpace(character);
number = Char.IsNumber(character);
}
success = letter & space & number;
}
else
{
success = false; // enables loop to exit
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
return userInput;
}
目前這一切塊,即使我有一個數字,空格和字母。
您覆蓋在字符循環的中間結果...這樣,你只會發現最後字符的字母空間和數字... – DarkSquirrel42
@PaulF - 它不是按位。這不是[tag:c]。這是非短路布爾'和'。 –
您的代碼似乎會以任意順序接受數字,空格和字母 - 如果您需要按照特定順序進行操作,那麼您需要更復雜的檢查。首先只用於號碼,然後檢查空間並只檢查信件。 – PaulF