[C#] Console.WriteLine 文字對齊

常常我們在Console程式要輸出結果時,因為字數的不一致,導致輸出畫面很亂,像下面這張圖一樣。此篇文章就是要紀錄如何將輸出畫面給弄整齊

目前據我所知,有兩種調整字串對齊的方法。第一種是呼叫string的PadRight或PadLeft方法,另一種則是在string.format中定義參數

使用範例

//原始輸出
for (int i = 0; i < 3; i++)
{
    Console.WriteLine($"{names[i]} {ages[i]}");
}

//方法一:使用PadRight讓文字靠左對齊
for (int i = 0; i < 3; i++)
{
    Console.WriteLine($"{names[i].PadRight(8)} {ages[i]}");
}

//方法二: 下參數到string interpolation
for (int i = 0; i < 3; i++)
{
    Console.WriteLine($"{names[i], -8} {ages[i]}");
}

使用說明

方法二的第二個參數的資料型態是int,當此參數數值大於0時,等同於PadLeft()功用,會讓輸出字串靠右對齊;當參數數值小於0時,則是等同PadRight,讓文字靠左對齊。      

參考資料

MSDN - 複合格式

仙人的設計之路 - 字串格式與對齊解說(一)綜合簡述