int值低于10转换为字符串两位数

时间:2010-06-01 06:28:40

标签: c# string

string strI;   

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

在此处,如果i = 1,则ToString会产生"1"

但我希望得到"01""001"

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

的文章
datetime.ToString("yyyy-MM-dd")`

7 个答案:

答案 0 :(得分:216)

i.ToString("00")

i.ToString("000")

取决于你想要的东西

请查看有关自定义数字格式字符串的MSDN文章以获取更多选项:http://msdn.microsoft.com/en-us/library/0c899ak8(VS.71).aspx

答案 1 :(得分:10)

接受的答案是好的和快速的:

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"

例如,我使用它来按名称清除表单上特定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;
                }
            }
        }
    }
}

答案 2 :(得分:9)

ToString can take a format。尝试:

i.ToString("000");

答案 3 :(得分:5)

这篇博客文章是一个很棒的小作弊表,可以在尝试将字符串格式化为各种格式时保持方便。

删除木马的链接

修改

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

答案 4 :(得分:4)

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

find . -type f -exec grep -n -i "keyword" {} /dev/null \;

int i = 9;
i.ToString("D2"); // Will give you the string "09"

如果要十六进制:

i.ToString("D8"); // Will give you the string "00000009"

如果您使用语言环境货币符号,则甚至可以仅使用“ C”显示为货币。看这里: https://docs.microsoft.com/en-us/dotnet/api/system.int32.tostring?view=netframework-4.7.2#System_Int32_ToString_System_String_

答案 5 :(得分: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);

根据您的padding参数,输出将为01。增加它会增加0的数量

答案 6 :(得分:0)

我将开始回答,说以前的大多数答案在编写时都是非常好的答案。所以,谢谢写信给他们的人。

现在,您还可以将String Interpolation用于相同的解决方案。

编辑:在收到来自Heretic Monkey的完全有效的建设性评论后,添加此解释。我更愿意在需要将整数转换为字符串而不将结果添加到任何其他字符串时使用.ToString。而且,我更喜欢在需要组合字符串和整数的情况下使用插值,如以下示例所示。

String Interpolation

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