C# 如何格式化字符串?

C# 如何格式化字符串?,c#,string,string-formatting,stringbuilder,C#,String,String Formatting,Stringbuilder,我的字符串看起来像0145655789,我想将其格式更改为0145.655.789 这是我尝试的代码: enterpriseCode和aNum都是StringBuilder对象 enterpriseCode.Append(String.Format("{0:####.###.###}", aNum.ToString()).Replace(";", "")); enterpriseCode仍然包含0145655789而不是0145.655.789,这是因为您提供的格式字符串用于数值参数,而不是字

我的字符串看起来像0145655789,我想将其格式更改为0145.655.789

这是我尝试的代码:

enterpriseCode和aNum都是StringBuilder对象

enterpriseCode.Append(String.Format("{0:####.###.###}", aNum.ToString()).Replace(";", ""));

enterpriseCode仍然包含0145655789而不是0145.655.789,这是因为您提供的格式字符串用于数值参数,而不是字符串。如果参数是字符串,它将被忽略

您可以将参数作为数字传递,并使用

{0:0000'.'000'.'000}
作为格式字符串。快速PowerShell测试:

PS> "{0:0000'.'000'.'000}" -f 145655789
0145.655.789
这会奏效的

string formatted = enterpriseCode.Insert(4, ".").Insert(8, ".");

那么,我应该将aNum转换为整数吗?是的,还是不首先将其转换为字符串(效率更高),或者在构建它时添加格式。我可以检查一下:上面的
-在您的特定区域设置中是“千位分隔符”吗?或者这只是一个不透明的无意义的标记?如果是千,则在格式字符串中需要使用
表示“当前文化的千分之一”<代码>表示“当前区域性的小数分隔符”。如果它只是一个令牌,您需要将其转义。@Marc,如果使用千位分隔符,结果对我来说是
0.145.655.789
,这不是他们想要的。这就是我在回答中硬编码格式字符串中的点的原因。@Joey确实,如果
只是一个标记(与千/小数无关),那么你的
'就完美了。