83

而不是这样做,我想利用string.format()来完成相同的结果:

if (myString.Length < 3)
{
    myString =  "00" + 3;
}
4

9 回答 9

148

如果您只是格式化一个数字,您可以提供正确的自定义数字格式,使其直接成为 3 位字符串:

myString = 3.ToString("000");

或者,或者,使用标准 D 格式字符串

myString = 3.ToString("D3");
于 2012-09-24T18:39:38.317 回答
31
 string.Format("{0:000}", myString);
于 2014-11-25T09:16:03.910 回答
19

它被称为填充

myString.PadLeft(3, '0')
于 2012-09-24T18:38:17.913 回答
13

这就是使用字符串插值 C# 7 完成的方法

$"{myString:000}"
于 2018-08-15T00:50:16.390 回答
8

(不能以足够的声誉发表评论,让我添加一个旁注)

以防万一您的输出需要固定长度为 3 位,即数字运行高达 1000 或更多(保留固定长度),不要忘记在其上添加 mod 1000

yourNumber=1001;
yourString= yourNumber.ToString("D3");        // "1001" 
yourString= (yourNumber%1000).ToString("D3"); // "001" truncated to 3-digit as expected

Fiddler 上的跟踪示例https://dotnetfiddle.net/qLrePt

于 2017-03-21T08:03:43.420 回答
4

这是一个简写字符串格式 Interpolation

$"{value:D3}"
于 2018-12-11T13:54:26.327 回答
3

“如何:用前导零填充数字” http://msdn.microsoft.com/en-us/library/dd260048.aspx

于 2012-09-24T18:39:42.913 回答
3

它必须是String.Format吗?

这看起来像是一份工作String.Padleft

myString=myString.PadLeft(3, '0');

或者,如果您直接从 int 转换:

myInt.toString("D3");
于 2012-09-24T18:40:44.213 回答
3

你也可以这样做: string.Format("{0:D3}, 3);

于 2016-08-03T15:25:57.730 回答