在Console.WriteLine方法中格式化字符串

时间:2010-11-19 09:51:24

标签: c# .net string formatting

我是C#编程的新手。有人可以解释下面的代码:

Console.WriteLine( "{0}{1,10}", "Face", "Frequency" ); //Headings
Console.WriteLine( "{0,4}{1,10}",someval,anotherval);

据我所知,这会打印两列带有标题的值,{0}指的是给定的第一个参数。但是{x,y}形式的格式字符串是什么意思?

3 个答案:

答案 0 :(得分:56)

它在左侧添加了填充。对于记住各种字符串格式化模式非常有用的是以下备忘单:

  

<强> .NET String.Format Cheat Sheet

正值向左添加填充,向右添加填充

Sample                                 Generates
String.Format("[{0, 10}]", "Foo");     [∙∙∙∙∙∙∙Foo]
String.Format("[{0, 5}]", "Foo");      [∙∙Foo]
String.Format("[{0, -5}]", "Foo");     [Foo∙∙]
String.Format("[{0, -10}]", "Foo");    [Foo∙∙∙∙∙∙∙]

答案 1 :(得分:8)

当您看到{x,y}时,x表示参数的索引,y表示对齐,如指定的here。完整语法如下:

{index[,alignment][:formatString]}

答案 2 :(得分:3)

这是一个填充值...如果参数不是指定的长度,则将空格放入。

E.g。如果你有{0,10}并且{0}的参数是“Blah”,那么打印的实际值将是"Blah<SPACE><SPACE><SPACE><SPACE><SPACE><SPACE>" ... Blah,有6个额外的空格来组成一个10长度的字符串

ps - 不确定如何将实际空间放入...需要查找SO faq毫无疑问