想要一个没有空格的电话号码

本文关键字:空格 电话号码 一个 | 更新日期: 2023-09-27 18:11:38

我试图创建一个程序,要求用户输入没有任何空格和连字符使用循环的电话号码。如果用户输入任何空格或连字符,程序将崩溃并要求用户再试一次。但我真的很难循环。我累了几次,它没有工作到目前为止,我所拥有的是要求用户a输入一个数字,并读取数字。如果你能帮助我,我真的很感谢你的帮助。

int num;
Console.WriteLine("plz enter your phone  number ");
num = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("the phone number :" + num);
Console.ReadKey();

想要一个没有空格的电话号码

你可以尝试使用Linq来过滤掉数字:

 string source = "+039 (923) 1234-456-78";
 // 039923123445678
 string result = string.Concat(source.Where(c => c >= '0' && c <= '9'));

请注意,有些电话号码可能相当长(国家代码,地区代码等),因此不适合int;另一个问题是,数字可以以开头(例如,+039是意大利的国家代码,而39可以作为蒙扎的区号),应该保留

由于您没有使用Winforms控件,因此您对用户输入的控制非常少,并且不能假设任何事情。因此,您确实需要将用户输入作为字符串读取。

Console.WriteLine("plz enter your phone  number ");
string input = Console.ReadLine();
从这里开始,我的建议是去掉所有非数字:
input = System.Text.RegularExpressions.Regex.Replace(input, @"'D", string.Empty);

然后你可以尝试将它呈现为一个数字:

long phoneNumber;
Int64.TryParse(input, out phoneNumber);

注意:我认为整数太小了,不能满足你的需要——使用大的int。

试试这个:

int num;
string input;
Console.WriteLine("plz enter your phone  number ");
input = Console.ReadLine();
Console.WriteLine("the phone number: {0}", input.replace(" ", "").Replace("-",""));

现在如果你想在某个地方使用num作为整数,使用num:

num = Convert.ToInt32(input);