string strI; for (int i = 1; i < 100; i++) strI = i.ToString();
in here, if i = 1 then ToString yields "1"
i = 1
ToString
"1"
But I want to get "01" or "001"
"01"
"001"
It looks quite easy, but there's only article about
datetime.ToString("yyyy-MM-dd")`
ToString 可以采用 格式:
i.ToString("000");
i.ToString("00")
或者
i.ToString("000")
取决于你想要什么
查看关于自定义数字格式字符串的 MSDN 文章,了解更多选项: http://msdn.microsoft.com/en-us/library/0c899ak8(VS.71).aspx
这篇博客文章是一个非常好的小技巧,在尝试将字符串格式化为各种格式时可以随时使用。
删除木马链接
剪辑
该链接被删除是因为谷歌临时警告该网站(或相关网站)可能正在传播恶意软件。它现在已经从名单上消失,不再被报道为有问题。谷歌“ SteveX 字符串格式”你会发现搜索结果,你可以访问它在你的判断。
人们接受的答案是又快又好:
如果你需要更多的复杂性,字符串,格式值得一试:
var str1 = ""; var str2 = ""; for (int i = 1; i < 100; i++) { str1 = String.Format("{0:00}", i); str2 = String.Format("{0:000}", i); }
对于 i = 10案例:
i = 10
str1: "10" str2: "010"
str1: "10"
str2: "010"
例如,我使用这个按名称清除表单上特定 Label Controls 上的文本:
private void EmptyLabelArray() { var fmt = "Label_Row{0:00}_Col{0:00}"; for (var rowIndex = 0; rowIndex < 100; rowIndex++) { for (var colIndex = 0; colIndex < 100; colIndex++) { var lblName = String.Format(fmt, rowIndex, colIndex); foreach (var ctrl in this.Controls) { var lbl = ctrl as Label; if ((lbl != null) && (lbl.Name == lblName)) { lbl.Text = null; } } } } }
你也可以这样做
private static string GetPaddingSequence(int padding) { StringBuilder SB = new StringBuilder(); for (int i = 0; i < padding; i++) { SB.Append("0"); } return SB.ToString(); } public static string FormatNumber(int number, int padding) { return number.ToString(GetPaddingSequence(padding)); }
最后调用函数 FormatNumber
string x = FormatNumber(1,2);
输出将是01,这是基于您的填充参数。增加它将增加0的数量
真不敢相信没人这么建议:
int i = 9; i.ToString("D2"); // Will give you the string "09"
i.ToString("D8"); // Will give you the string "00000009"
如果你想要十六进制:
byte b = 255; b.ToString("X2"); // Will give you the string "FF"
如果你使用货币符号,你甚至可以只用“ C”来显示货币: Https://learn.microsoft.com/en-us/dotnet/api/system.int32.tostring?view=netframework-4.7.2#system_int32_tostring_system_string_
首先我要说的是,以前的大多数答案在写作时都是非常好的答案。所以,感谢那些写信的人。
现在,您也可以对相同的解决方案使用字符串插值。
编辑: 在收到来自异端猴子的完美有效的建设性意见后添加此解释。我更喜欢用。当我需要将整数转换为字符串而不需要将结果添加到任何其他字符串时,就使用 ToString。而且,我更喜欢在需要组合字符串和整数时使用插值,如下面的示例所示。
字符串插值
i.ToString("00") 01 i.ToString("000") 001 i.ToString("0000") 0001 $"Prefix_{i:00}" Prefix_01 $"Prefix_{i:000}" Prefix_001 $"Prefix_{i:0000}_Suffix" Prefix_0001_Suffix