0
Console.WriteLine( "Year{0,20}", "Amount on deposit" );

输出:Year Amount on deposit

据我了解,“年”这个词后面应该有16个空格。但是,如您所见,事实并非如此。单词后面只有 4 个空格。代码的解释方式是否与我理解的不同?

谢谢。

4

6 回答 6

2

实际上有三个空格。添加一个符号以帮助您了解发生了什么:

Console.WriteLine("#Year#{0,20}#", "Amount on deposit");

输出:

#Year#   Amount on deposit#

字符串“存款金额”占用 20 个空格 - 实际文本占 17 个,前面有 3 个填充字符。正如此链接所解释的,这就像右对齐。

于 2014-05-21T21:47:16.580 回答
0

20 代表对齐。所以你的总字符串大小将是 20 个字符。

所以“存款金额”= 17 个字符 + 3 个字符填充 = 20

请参阅复合格式

于 2014-05-21T21:47:16.483 回答
0

间距适用于替代品。所以间距为20 - <length of string>

于 2014-05-21T21:47:55.033 回答
0

以下将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   " 
于 2014-05-21T22:02:23.040 回答
0

我认为这就是您正在寻找的,而不使用任何格式说明符:

左对齐:

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|
于 2014-05-21T21:56:18.413 回答
0

要在一年后获得 16 个空格的输出,您可以将您拥有的内容反转为

Console.WriteLine("{0,-20}Amount on deposit", "Year");

这将在“存款金额”之前创建一个 20 个字符的空白空间,将“年份”放入其中。

于 2014-05-21T21:55:06.593 回答