【发布时间】:2011-10-05 18:56:03
【问题描述】:
我有一个包含两个字符串的类,一个反映当前年份,一个代表某个值。这些字段根据用户指定的格式(使用 string.format)进行组合。重要提示:用户输入的数据用于生成,因此它始终是整数,我们不必担心这一点。
我们的默认格式是“{0}-{1:000}”。但是,既然用户指定的数据是一个字符串,它就不想进行适当的格式化。这是一个例子:
用户输入 12 作为所需数据。格式化时,不显示 2011-0012,只显示 2011-12。我如何确保添加 0 而不做一些疯狂的循环来附加 0 或尝试解析数字(假设它是一个数字。应该只有足够的 0 来等于长度为 4 的字符串)?
这是我尝试过的一种格式:
"{0}-{1:0000}" -> 强制用户输入数字时的原始格式。 “{0}-{1:D4}” “{0}-{1:N4}”
【问题讨论】:
-
有一个验证过程可确保输入的数据与格式匹配。如果没有,我们就忘记 0 并简单地输入 2011:aa。我的问题真正来自于希望尽可能地保持系统与旧系统一样,特别是如果我们自己生成数据(我们总是使用数字)
-
2011-0012究竟代表什么?
-
年份,然后是可以指定或生成的序列号。
标签: c# string-formatting integer