Im新的C#編程。有人可以請解釋下面的代碼:Console.WriteLine方法中的格式字符串
Console.WriteLine("{0}{1,10}", "Face", "Frequency"); //Headings
Console.WriteLine("{0,4}{1,10}",someval,anotherval);
筆者瞭解到,這款打印值的兩列給出的標題和{0}
是指給定的第一個參數。但是格式字符串{x,y}
的含義是什麼?
Im新的C#編程。有人可以請解釋下面的代碼:Console.WriteLine方法中的格式字符串
Console.WriteLine("{0}{1,10}", "Face", "Frequency"); //Headings
Console.WriteLine("{0,4}{1,10}",someval,anotherval);
筆者瞭解到,這款打印值的兩列給出的標題和{0}
是指給定的第一個參數。但是格式字符串{x,y}
的含義是什麼?
它向左側添加填充。爲記住各種字符串格式化模式非常有用的是以下小抄:
正值向左,負添加填充添加填充到右側
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∙∙∙∙∙∙∙]
請檢查this以獲取非常好的字符串格式參考。
這是一個填充值...如果該參數不被指定的長度,它把空間中。
例如如果您有{0,10},{0}的參數是「Blah」,則打印的實際值將是"Blah<SPACE><SPACE><SPACE><SPACE><SPACE><SPACE>"
... Blah,包含6個額外空格以組成一個長度爲10的字符串
ps - 不知道如何把實際空格...需要查找SO常見問題無疑
當你看到{x,y}
,x
代表爭論的指數和y
排列,按規定here。完整的語法如下:
{index[,alignment][:formatString]}
感謝您的回覆0xA3。如果我理解正確,那麼是不是意味着{1,10}會立即打印第二個參數和10個空格? – Joe 2010-11-19 09:58:18
@Joe:不,填充意味着字符串填充了空格,直到指定的長度,請參閱我的答案中的示例。 – 2010-11-19 09:59:57
據我所知,這張備忘單是完全錯誤的!使用錯誤的索引,並且正面/負面的對齊與實際發生的事情相反。所以,爲了產生'[∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙∙'',你實際上會做'String.Format(「[{0,10}]」,「Foo」);'' – 2010-11-19 10:11:54