用0填充字符串 - 格式化风格?

时间:2015-01-15 18:59:05

标签: c# string-length

好的,所以我需要使用一定数量的0来填充字符串值,具体取决于字符串的长度是否为6个字符。但结果值不得超过6个字符。

例如:

  • 123应更改为000123
  • 4567应更改为004567
  • 123456不应该一直改变

不幸的是,我现在所设置的内容不起作用。它只将输入的字符串值更改为D6。 (注意:NMFCItemNum的值可以为空 - 在这些情况下,不需要执行任何操作)。

我已经发现D#在值之前给出了适当数量的0,但设置错误。

            string NMFCItemNum = GetValue(curCategory, (int)CategoryCols.NMFCItemNum);
            if (NMFCItemNum != "")
            {
                //Save the value of NMFCItemNum as is
                if (NMFCItemNum.Length == 6)
                {
                    cmd.Parameters.Add(new SqlParameter("@NMFCItemNumber", GetValue(curCategory, (int)CategoryCols.NMFCItemNum)));
                }
                else
                {
                    if (NMFCItemNum.Length < 6)
                    {
                        //prefix with 0's then save to database
                        cmd.Parameters.Add(new SqlParameter("@NMFCItemNumber", String.Format("D6",NMFCItemNum)));
                    }
                }
            }

3 个答案:

答案 0 :(得分:1)

String.Format("D6",NMFCItemNum)

将“D6”作为简单字符串。格式化字符串将“D6”解释为“D6”。您需要使用占位符

String.Format("{0:D6}", NMFCItemNum);

说“取第一个参数,将其填入{0}位置,然后使用”D6“格式化。

答案 1 :(得分:1)

您可以使用string.PadLeft(Total Width, character)方法

NMFCItemNum.PadLeft(6, '0');

答案 2 :(得分:1)

这样的东西?

string str = "1234"
Console.WriteLine(str.PadLeft(8, '0'));  
//00001234