.NET中的字符串格式:将整数转换为固定宽度字符串?

pea*_*ewg 25 .net string string-formatting

我在.NET/C#中有一个int,我想转换为特定格式的字符串.

如果值为1,我希望字符串为"001".

10 ="010".

116 ="116".

等等...

我正在寻找字符串格式,但到目前为止还没有成功.我也不会超过999的价值.

vcs*_*nes 46

最简单的方法是使用.NET的内置功能:

var r = 10;
var p = r.ToString("000");
Run Code Online (Sandbox Code Playgroud)

无需循环或填充.

  • 对于负数,这将变成 4 个字符。例如,-10 变为“-010” (3认同)

ing*_*ngo 23

看看PadLeft.

例如:

int i = 40;

string s = i.ToString().PadLeft(3, '0'); 
Run Code Online (Sandbox Code Playgroud)

s =="040"

  • 使用这种方法,负数有风险。“-1”变成“0-1” (3认同)

svi*_*ick 11

另一种选择是:

i.ToString("d3")
Run Code Online (Sandbox Code Playgroud)

  • @Brady ToString不会*改变*任何东西,它*返回*字符串.也许那就是问题?(您实际上并没有显示如何输出值,所以很难说.) (3认同)

小智 6

我记得看到这样的代码用零填充数字......

int[] nums = new int[] { 1, 10, 116 };

foreach (int i in nums)
{
    Console.WriteLine("{0:000}", i);
}
Run Code Online (Sandbox Code Playgroud)

输出:

001
010
116
Run Code Online (Sandbox Code Playgroud)

  • @svick它也适用于string.Format (3认同)