将电话号码转换回int64

时间:2010-08-30 17:45:31

标签: c#

我有一个电话号码(000)000-0000,我想将它转换回0000000000,有没有办法这样做?

4 个答案:

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

......实际上,考虑到它 可读: - )