在"012.345.678-90"中格式化"01234567890"的更好方法是什么?

Gui*_*tos 3 .net c# string.format

我有一个关于如何格式化字符串的简单问题.

我将这个数字作为字符串"01234567890",左边为零,需要将其格式化为" 012.345.678-90 ".

我用它解决了它

char[] charArgs = sCPF.ToCharArray();

return String.Format("{0}{1}{2}.{3}{4}{5}.{6}{7}{8}-{9}{10}", 
                     charArgs[0], charArgs[1], charArgs[2], charArgs[3], 
                     charArgs[4], charArgs[5], charArgs[6], charArgs[7], 
                     charArgs[8], charArgs[9], charArgs[10]);
Run Code Online (Sandbox Code Playgroud)

我也试过了:

Convert.ToInt64("01234567890").ToString("000.000.000-00")
Run Code Online (Sandbox Code Playgroud)

但那给了我"1234567890,000000-00"

但如果我也试过这个

Convert.ToInt64("01234567890").ToString("000-000-000-00")
Run Code Online (Sandbox Code Playgroud)

这导致"012-345-678-90",但在这种情况下不是我需要的,我需要点(.).

有没有更好的方法呢?

我正在使用.net 2.0.

Ray*_*Ray 16

你快到了.

试试这个:

Convert.ToInt64("01234567890").ToString(@"000\.000\.000-00")
Run Code Online (Sandbox Code Playgroud)

这给了我: 012.345.678-90