C#删除空格和连字符

时间:2014-03-26 16:43:30

标签: c#

您好我是初学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;

3 个答案:

答案 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)))));