【发布时间】:2013-10-09 22:57:11
【问题描述】:
我需要生成一个固定长度的文本行:
我现在拥有的是:
StringBuilder _sb = new StringBuilder();
_sb.Append(string.Format("{0,5}", "MM")); // serie to cancel
_sb.Append(string.Format("{0,20}", "45444")); // folio to cancel
_sb.Append(string.Format("{0,30}", "AC1122")); // account number (optional)
这很有效,因为它会生成一个 55 个字符的固定长度字符串。
例如,当可选值是一个空字符串时,问题就出现了:
StringBuilder _sb = new StringBuilder();
_sb.Append(string.Format("{0,5}", "MM")); // serie to cancel
_sb.Append(string.Format("{0,20}", "45444")); // folio to cancel
_sb.Append(string.Format("{0,30}", "")); // account number (optional)
在 string.format 中有空字符串不会给出固定长度,我仍然需要有 30 个字符的长度。
任何线索都非常感谢!
谢谢
【问题讨论】:
-
使用 String.PadLeft 方法:msdn.microsoft.com/en-us/library/92h5dc07.aspx 获得所需宽度的字符串。
-
如果传入一个空格会发生什么?
_sb.Append(string.Format("{0,30}", " ")); -
您的代码仍然会生成一个 55 个字符长的字符串,其中最后 30 个是空格字符。
标签: c# string fixed-length-record