您好我是初学c#程序员。
需要帮助编写小代码程序控制台,邀请用户输入不带空格和连字符的电话号码( - )进行验证,如果用户不遵守这些条件,则显示错误消息。并创建一个循环,重新要求用户输入相同的信息再试一次。
Console.WriteLine("Please enter your phone no.: \t");
string n = Console.ReadLine();
char[] delimiters = new char[] { ' ', '-' };
string textBox = Convert.ToString(n);
string[] numtel = textBox.Split(delimiters);
bool test = false;
答案 0 :(得分:1)
你需要一个while循环:
char[] delimiters = new char[] { ' ', '-' };
string n;
while(true)
{
Console.WriteLine("Please enter your phone no.: \t");
n = Console.ReadLine();
if(n.Length > 0 && !n.Any(delimiters.Contains)) break;
else Console.WriteLine("Invalid value, try again.");
}
答案 1 :(得分:1)
以下是您的任务的简单解决方案:
bool isValid = false;
while(!isValid){
Console.WriteLine("Please enter your phone no.: \t");
string phone = Console.ReadLine();
isValid = !string.isNullOrWhiteSpace(phone)
&& phone.s.IndexOfAny(new[] { '-', ' ' }) < 0;
if (!isValid)
Console.WriteLine("No spaces or '-' allowed");
}
然而,这是一种验证电话号码的不良方式。人们使用'(','。'和其他可能的角色。
另一种方法是使用正则表达式example:
isValid = !string.isNullOrWhiteSpace(phone)
&& Regex.IsMatch(phone, @"\(?\d{3}\)?-? *\d{3}-? *-?\d{4}");
答案 2 :(得分:0)
试试这个:
var compareStrings = new [] { "-", " " };
string phoneNo=string.Empty;
do
{
Console.WriteLine("enter phone number without spaces and hyphens ");
phoneNo = Console.ReadLine();
}while(!(compareStrings.Any((c=>phoneNo.Contains(c)))));