我希望利用string.format()
来完成相同的结果,而不是这样做:
if (myString.Length < 3)
{
myString = "00" + 3;
}
答案 0 :(得分:101)
如果您只是格式化数字,则可以直接提供正确的custom numeric format使其成为3位数字符串:
myString = 3.ToString("000");
或者,使用standard D format string:
myString = 3.ToString("D3");
答案 1 :(得分:23)
string.Format("{0:000}", myString);
答案 2 :(得分:18)
它被称为Padding:
myString.PadLeft(3, '0')
答案 3 :(得分:5)
(暂且不能发表评论,请允许我添加旁注)
万一你的输出需要固定长度为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
上追踪样本答案 4 :(得分:3)
“如何:使用前导零填充数字” http://msdn.microsoft.com/en-us/library/dd260048.aspx
答案 5 :(得分:3)
你也可以这样做:string.Format(“{0:D3},3);
答案 6 :(得分:3)
这是使用字符串内插C#7完成的操作
$"{myString:000}"
答案 7 :(得分:2)
是否必须是String.Format
?
这看起来像是String.Padleft
myString=myString.PadLeft(3, '0');
或者,如果您直接从int转换:
myInt.toString("D3");
答案 8 :(得分:2)
这是一个简短的字符串format Interpolation:
$"{value:D3}"