我有一个电话号码(000)000-0000,我想将它转换回0000000000,有没有办法这样做?
答案 0 :(得分:10)
你真的想要一个整数吗?电话号码没有整数意义。
如果您使用的是字符串,请尝试此操作:
string fixedString = Regex.Replace(yourString, @"[()\s-]", "");
如果您不知道字符串中可以包含哪种字符,请尝试以下操作:
string fixedString = Regex.Replace(yourString, @"[^\d]", "");
答案 1 :(得分:0)
Int64 somePhone;
Int64.TryParse(Regex.Replace(yourString, @"[()\s-)]", ""), out somePhone)
答案 2 :(得分:0)
如何以老式但非常易读的方式做到这一点:
string Strip(string arg)
{
StringBuilder sb = new StringBuilder();
foreach (char c in arg.ToCharArray())
{
if (char.IsDigit(c))
{
sb.Append(c);
}
}
return sb.ToString();
}
它也比RegEx快一点(0.449秒vs 10000秒的0.472秒).0
答案 3 :(得分:0)
或者为了简洁起见可读性(给我们经验不足的程序员:-))
public static string GimmeNumbers(this string arg)
{
return new string(arg.ToCharArray().Where(c => char.IsDigit(c)).ToArray());
}
用法:
string phoneNo = "(000) 000-0000".GimmeNumbers();
或者,
public static int GimmeNumbers(this string arg)
{
return int.Parse(new string(arg.ToCharArray().Where(c => char.IsDigit(c)).ToArray()));
}
......实际上,考虑到它 可读: - )