控制台.WriteLine字符串格式没有输出预期的结果
本文关键字:结果 输出 WriteLine 字符串 格式 控制台 | 更新日期: 2023-09-27 18:04:26
Console.WriteLine( "Year{0,20}", "Amount on deposit" );
输出:Year Amount on deposit
据我理解,"Year"后面应该有16个空格。然而,正如你所看到的,情况并非如此。单词后面只有4个空格。代码的解释方式是否与我理解的不同?
谢谢。
实际上有三个空格。添加一个符号来帮助你理解发生了什么:
Console.WriteLine("#Year#{0,20}#", "Amount on deposit");
输出:#Year# Amount on deposit#
字符串"Amount on deposit"占用了20个空格-实际文本占用了17个空格,并且在它之前填充了3个字符。就像右对齐一样,这个链接解释了
20表示对齐。所以你的总字符串长度将是20个字符。
所以"Amount on deposit" = 17个字符+ 3个字符padding = 20
参见复合格式
空格应用于替换。所以空格是20 - <length of string>
如果要得到一年之后有16个空格的输出,您可以将已有的内容反转为
Console.WriteLine("{0,-20}Amount on deposit", "Year");
这将在"Amount on deposit"之前创建一个20个字符的空白空间,其中"Year"将被放入。
我认为这是你正在寻找的,不使用任何格式说明符:
左侧调整:
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|
以下命令将以20个字符的间距右对齐打印Amount on deposit
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 "