整数的字符串格式c#

The*_*eek 4 c# integer string-formatting

我有一个包含两个字符串的类,一个反映当前年份,另一个代表一些价值.这些字段基于用户指定的格式(使用string.format)进行组合.重要提示:用户输入了以前生成的数据,因此它始终是一个整数,我们不必担心这一点.

我们的默认格式为"{0} - {1:000}".但是,现在用户指定的数据是一个字符串,它不希望适当地格式化.这是一个例子:

用户输入12作为所需数据.格式化时,它不显示2011-0012,而只显示2011-12.我如何确保添加0是没有做一些疯狂的循环,它将附加0或试图解析数字(假设它是一个数字.应该只有足够的0来等于长度为4的字符串)?

这是我作为一种格式尝试的:

"{0} - {1:0000}" - >用户被迫输入数字时的原始格式."{0} - {1:D4}"""{0} - {1:N4}"

Bro*_*ass 5

你可以使用string.PadLeft():

string output = string.Format("{0}-{1}", "2011", input.PadLeft(4, '0'));
Run Code Online (Sandbox Code Playgroud)

  • @The Sheek Geek最好看看Padleft更近一点.它使用填充保证最小尺寸,除非必须,否则不添加额外的字符.这种方法很好,除非你可以有负整数..在这种情况下你会看到一些奇怪的,比如"-3"改为"00-3" (2认同)