小于10的整数值转换为字符串两位数字


118
string strI;   

for (int i = 1; i < 100; i++)
    strI = i.ToString();

在这里,如果i = 1ToString产量"1"

但我想得到 "01""001"

看起来很简单,但是只有一篇关于

datetime.ToString("yyyy-MM-dd")`

最好张贴可编译和运行的代码,这tostirng是不对的。另外,对于程序员来说,0x建议您指的是十六进制基数。您正在寻找“前导零”。
科比

@Kobi抱歉,我的母语不是英语,而我的英语实际上是不好的。我每天去英语学校提高我的英语水平。你能理解我吗?我编辑了tostirng
Sungguk Lim

没关系。只是一个提示。无论如何,int.ToString可以采用类似的格式DateTime.ToString
科比2010年

Answers:



12

公认的答案是好的,而且很快:

i.ToString("00")

要么

i.ToString("000")

如果您需要更多的复杂性,可以尝试String.Format

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情况:

str1: "10"
str2: "010"

例如,我使用它来清除表单上按名称显示的特定“标签控件”上的文本:

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;
                }
            }
        }
    }
}


6

我不敢相信没有人建议这样做:

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 : //docs.microsoft.com/zh-cn/dotnet/api/system.int32.tostring?view=netframework-4.7.2#System_Int32_ToString_System_String_


5

这篇博客文章是一个很棒的小备忘单,可以在尝试将字符串格式化为各种格式时方便使用。

链接到木马已删除

编辑

该链接已删除,因为Google暂时警告该网站(或相关网站)可能正在传播恶意软件。现在已不在列表中,不再报告有问题。使用Google“ SteveX字符串格式”,您可以找到搜索结果,并可以自行决定访问它。


1
该站点(现在)会触发木马警告。
Henk Holterman 2010年

0

你也可以这样

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,这取决于您的padding参数。增加它会增加0的数量

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.