我有一个包含两个字符串的类,一个反映当前年份,另一个代表一些值。这些字段基于用户指定的格式(使用string.format)进行组合。重要提示:用户输入了以前生成的数据,因此它始终是一个整数,我们不必担心这一点。
我们的默认格式为“{0} - {1:000}”。但是,现在用户指定的数据是一个字符串,它不希望适当地格式化。这是一个例子:
用户输入12作为所需数据。格式化时,它不显示2011-0012,而只显示2011-12。我怎样才能确保添加0是没有做一些疯狂的循环,它会附加0或试图解析数字(假设它是一个数字。应该只有足够的0来等于长度为4的字符串)?< / p>
以下是我作为格式尝试的内容:
“{0} - {1:0000}” - &gt;用户被迫输入数字时的原始格式。 “{0} - {1:D4}” “{0} - {1:N4}”
答案 0 :(得分:5)
您可以使用string.PadLeft()
:
string output = string.Format("{0}-{1}", "2011", input.PadLeft(4, '0'));
答案 1 :(得分:2)
您可以使用string.PadLeft
向左添加零,或使用int.TryParse
尝试转换为整数。后者将作为验证检查的两倍。