C# Console.WriteLine字符串格式未输出预期结果
输出:C# Console.WriteLine字符串格式未输出预期结果,c#,string-formatting,console.writeline,C#,String Formatting,Console.writeline,输出:年度存款金额 据我理解,“年”一词后面应该有16个空格。但是,正如您所看到的,情况并非如此。单词后只有4个空格。代码的解释方式是否与我理解的不同 谢谢。20表示对齐。因此,字符串的总大小将为20个字符 所以“存款金额”=17个字符+3个字符填充=20 参见实际上有三个空格。添加一个符号以帮助您了解发生了什么: Console.WriteLine( "Year{0,20}", "Amount on deposit" ); 输出: Console.WriteLine("#Year#{0,20
年度存款金额
据我理解,“年”一词后面应该有16个空格。但是,正如您所看到的,情况并非如此。单词后只有4个空格。代码的解释方式是否与我理解的不同
谢谢。20表示对齐。因此,字符串的总大小将为20个字符 所以“存款金额”=17个字符+3个字符填充=20
参见实际上有三个空格。添加一个符号以帮助您了解发生了什么:
Console.WriteLine( "Year{0,20}", "Amount on deposit" );
输出:
Console.WriteLine("#Year#{0,20}#", "Amount on deposit");
字符串“存款金额”占用了20个空格——实际文本为17个,前面有3个字符的填充。正如所解释的,这类似于右对齐。将间距应用于替换。因此,间距为
20-
要在一年后获得16个空格的输出,您可以将您拥有的空间反转为
Console.WriteLine(“{0,-20}存款金额”,“年”)代码>
这将在“存款金额”之前创建一个20个字符的空白空间,而“年”将被放入其中。我认为这就是您正在寻找的内容,而不使用任何格式说明符:
左对齐:
#Year# Amount on deposit#
Console.WriteLine( "{0}{1}", year.ToString().PadRight(20,' '), "Amount on deposit" );
右对齐:
#Year# Amount on deposit#
Console.WriteLine( "{0}{1}", year.ToString().PadRight(20,' '), "Amount on deposit" );
因此,左对齐的版本将输出年份,后面是16个空格:
Console.WriteLine( "{0}{1}", year.ToString().PadLeft(20,' '), "Amount on deposit" );
右对齐版本将输出16个空格,然后是年份:
|1994 |
以下内容将在20个字符的空格中右对齐打印存款金额
| 1994|
如果要左对齐,请使用减号:
Console.WriteLine( "Year{0,20}", "Amount on deposit" );
Result:
"Year Amount on deposit"
显然是这样。格式不适用于“Year”,而是适用于您传递的参数。我对C#很生疏,但我认为{0,20}
的作用类似于通过左边填充迫使“存款金额”占用20个空格。我现在明白了。感谢大家的投入。:)