Console.WriteLine( "Year{0,20}", "Amount on deposit" );
输出:Year Amount on deposit
据我了解,“年”这个词后面应该有16个空格。但是,如您所见,事实并非如此。单词后面只有 4 个空格。代码的解释方式是否与我理解的不同?
谢谢。
Console.WriteLine( "Year{0,20}", "Amount on deposit" );
输出:Year Amount on deposit
据我了解,“年”这个词后面应该有16个空格。但是,如您所见,事实并非如此。单词后面只有 4 个空格。代码的解释方式是否与我理解的不同?
谢谢。
实际上有三个空格。添加一个符号以帮助您了解发生了什么:
Console.WriteLine("#Year#{0,20}#", "Amount on deposit");
输出:
#Year# Amount on deposit#
字符串“存款金额”占用 20 个空格 - 实际文本占 17 个,前面有 3 个填充字符。正如此链接所解释的,这就像右对齐。
间距适用于替代品。所以间距为20 - <length of string>
。
以下将Amount on deposit
在 20 个字符的空间中右对齐打印
Console.WriteLine( "Year{0,20}", "Amount on deposit" );
Result:
"Year Amount on deposit"
如果您希望它左对齐,请使用减号:
Console.WriteLine( "Year{0,-20}", "Amount on deposit" );
Result
"YearAmount on deposit "
我认为这就是您正在寻找的,而不使用任何格式说明符:
左对齐:
Console.WriteLine( "{0}{1}", year.ToString().PadRight(20,' '), "Amount on deposit" );
右对齐:
Console.WriteLine( "{0}{1}", year.ToString().PadLeft(20,' '), "Amount on deposit" );
所以左对齐的版本会输出年份,后跟 16 个空格:
|1994 |
右对齐版本将输出 16 个空格,后跟年份:
| 1994|
要在一年后获得 16 个空格的输出,您可以将您拥有的内容反转为
Console.WriteLine("{0,-20}Amount on deposit", "Year");
这将在“存款金额”之前创建一个 20 个字符的空白空间,将“年份”放入其中。