【问题标题】:Padding string with 0's -- formatting style? [duplicate]用 0 填充字符串——格式化样式? [复制]
【发布时间】:2015-01-15 18:59:04
【问题描述】:

好的,所以我需要用一定数量的 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)));
                    }
                }
            }

【问题讨论】:

  • @Prix,如果问题是关于格式化字符串的错误,这不会是重复的。 OP,如果您仍想使用String.Format,请考虑重新措辞。

标签: c# string-length


【解决方案1】:

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

NMFCItemNum.PadLeft(6, '0');

【讨论】:

  • 这就是我想要的!谢谢!
【解决方案2】:
String.Format("D6",NMFCItemNum)

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

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

说“获取第一个参数,将其填充到 {0} 位置,并使用“D6”格式。

【讨论】:

    【解决方案3】:

    这样的?

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

    【讨论】:

      猜你喜欢
      • 2022-11-18
      • 2014-08-24
      • 2019-08-27
      • 1970-01-01
      • 2017-06-26
      • 1970-01-01
      • 1970-01-01
      • 2021-04-26
      • 1970-01-01
      相关资源
      最近更新 更多