C# 将一串零格式化为电话号码

C# 将一串零格式化为电话号码,c#,C#,问题。 我需要将字符串格式化为电话号码。我正在使用这个函数 Convert.ToInt64(Number).ToString("###-###-####") 除非我有0000000000,否则都是零 关于如何将所有零格式化为“#####-##-##-##-##”简短的回答是: .ToString("000-000-0000"); 如果缺少数字,则使用0而不是#作为占位符将包括零 但较长的答案是,转换手机真的没有意义 正是因为前导零,才将数字从字符串改为第一位的数字。这同样适用于许多

问题。
我需要将字符串格式化为电话号码。我正在使用这个函数

Convert.ToInt64(Number).ToString("###-###-####")    
除非我有0000000000,否则都是零


关于如何将所有零格式化为“#####-##-##-##-##”

简短的回答是:

.ToString("000-000-0000"); 
如果缺少数字,则使用0而不是#作为占位符将包括零

但较长的答案是,转换手机真的没有意义 正是因为前导零,才将数字从字符串改为第一位的数字。这同样适用于许多其他“数字”,它们不是真正的数字,而是代码。比如说邮政编码

如果
Number
是一个字符串,并且来自用户输入,那么用户可能已经插入了
-
。甚至括号。因此,您可能从一开始就以完全错误的方式处理此问题

更好的解决方案是使用正则表达式从字符串中提取数字并格式化。为此,请参见:


例如。

如果有任何前导零,是否会发生这种情况?还有,为什么您需要将所有0格式化为一个电话号码?您有
0000000000
作为电话号码?因为缺乏研究,所以减去1。这个问题或类似的问题已经被问了无数次。我可能会跳过对
long
的转换,改为格式化字符串。
.ToString(“000-000-0000”)使用
0
而不是
#
作为占位符,如果数字缺失,占位符将包含零。但是,由于前导零的原因,将电话号码转换成一个号码是没有意义的。