格式化MVC/C中的字符串#

Dot*_*row 15 c# asp.net asp.net-mvc-3

我有一个字符串731478718861993983,我想用C#获得这个73-1478-7188-6199-3983.我该如何格式化呢?

谢谢.

HAB*_*JAN 13

通过使用正则表达式:

    public static string FormatTest1(string num)
    {
        string formatPattern = @"(\d{2})(\d{4})(\d{4})(\d{4})(\d{4})";
        return Regex.Replace(num, formatPattern, "$1-$2-$3-$4-$5");
    }

    // test
    string test = FormatTest1("731478718861993983");
    // test result: 73-1478-7188-6199-3983
Run Code Online (Sandbox Code Playgroud)

  • 如果你有1个问题并通过正则表达式解决它,你现在有2个问题:) (3认同)

Kob*_*obi 9

如果您正在处理long数字,可以使用a NumberFormatInfo来格式化它:

首先,定义您的NumberFormatInfo(您可能需要其他参数,这些是基本参数3):

NumberFormatInfo format = new NumberFormatInfo();
format.NumberGroupSeparator = "-";
format.NumberGroupSizes = new[] { 4 };
format.NumberDecimalDigits = 0;        
Run Code Online (Sandbox Code Playgroud)

接下来,您可以在数字上使用它:

long number = 731478718861993983;
string formatted = number.ToString("n", format);
Console.WriteLine(formatted);
Run Code Online (Sandbox Code Playgroud)

毕竟,.Net拥有非常好的全球化支持 - 您可以更好地使用它!