C# 字符串格式分隔符 12-3456789-0

C# string format delimiter 12-3456789-0

我有下面的字符串。

1234567890

我想得到那个字符串。

12-3456789-0

我尝试使用以下代码。

string.Format("{0:0-#######-#}", "1234567890");

但是结果不是我想要的

1234567890

Fiddle

您应该使用 int 值而不是字符串,例如:

using System;                   
public class Program
{
    public static void Main()
    {
        string s = "1234567890";
        int i = int.Parse(s);
        Console.WriteLine("Hello World");       
        string test = string.Format("{0:0-#######-#}", i);
        Console.WriteLine(test);            
    }
}

输出:

Hello World

12-3456789-0

您必须使用数字类型,因为您使用 Custom Numeric Format String

您的代码不起作用的原因是您指定了字符串的数字格式。

看:

string.Format("{0:0-#######-#}", "1234567890"); // "1234567890" is a string

试试这个:

string.Format("{0:0-#######-#}", 1234567890); // 1234567890 is a number

顺便说一句,要获得您真正想要的输出,您的格式字符串需要是 {0:0#-#######-#}