【问题标题】:Append string without hard coded value附加没有硬编码值的字符串
【发布时间】:2018-11-08 14:01:30
【问题描述】:

我有一个字符串,看起来像:

A5050MM

我想要实现的是附加字符串的末尾,使其变为:

A5050MM01
A5050MM02
...

目前我这样做如下:

string sn = "A5050MM";

for (int i = 0; i <= 99; i++)
{
   string appendVal = i < 10 ? "0" + i : i.ToString();
   string finalsn = string.Concat(sn, appendVal);
   Console.WriteLine(finalsn);
}

这可行,但正如您所见,我正在对 "0" 进行硬编码,因为如果我不这样做,那么输出将是 A5050MM1, A5050MM2 ...,直到 9 点。

我的问题是否有另一种方法可以实现此无需硬编码"0" 或者这是我必须遵循的唯一方法?

提前感谢您的帮助。

【问题讨论】:

标签: c# .net string


【解决方案1】:

尝试使用格式化(注意d2格式化字符串 - 至少2位):

 for (int i = 0; i <= 99; i++)
 {
     // sn followed by i which has at least 2 digits 
     string finalsn = $"{sn}{i:d2}";
     Console.WriteLine(finalsn);
 }

【讨论】:

  • 感谢您的帮助
【解决方案2】:

您可以使用ToString 的重载格式:

string sn = "A5050MM";

for (int i = 0; i <= 99; i++)
{
   string finalsn = string.Concat(sn, i.ToString("00"));
   Console.WriteLine(finalsn);
}

See a live demo on rextester.

【讨论】:

  • 嗨,这个Argument 1: cannot convert from 'string' to 'System.IFormatProvider'出现以下错误
  • 对我来说很好...我添加了一个现场演示链接。
  • 我认为它导致了一个错误,因为在编辑之前你有appendVali.ToString("00"));,现在我做了i.ToString("00"),它按预期工作。感谢您的帮助,我会接受这个,因为您是第一个回答的人
  • 是的,这是一个错字...很高兴帮助 :-)
【解决方案3】:

你也可以在 toString liek 中使用 D2

        string sn = "A5050MM";

        for (int i = 0; i <= 99; i++)
        {
           string finalsn = string.Concat(sn, i.ToString("D2"));
           Console.WriteLine(finalsn);
        }

【讨论】:

    【解决方案4】:

    你可以使用PadLeft函数

        string sn = "A5050MM";
        for (int i = 0; i <= 99; i++)
        {
            string finalsn = sn + i.ToString().PadLeft(2, '0');
            Console.WriteLine(finalsn);
        }
    

    【讨论】:

      【解决方案5】:
      Enumerable.Range(0, 99)
          .Select(x => String.Format("A5050MM{0:d2}", x))
          .ToList()
          .ForEach(x => Console.WriteLine(x));
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-09-05
        • 2011-10-24
        • 1970-01-01
        • 1970-01-01
        • 2010-11-07
        • 2016-06-04
        • 2011-05-21
        相关资源
        最近更新 更多