我有一种列显示,但末尾的两列似乎没有正确对齐。这是我目前拥有的代码:
Console.WriteLine("Customer name "
+ "sales "
+ "fee to be paid "
+ "70% value "
+ "30% value");
for (int DisplayPos = 0; DisplayPos < LineNum; DisplayPos = DisplayPos + 1)
{
seventy_percent_value = ((fee_payable[DisplayPos] / 10.0) * 7);
thirty_percent_value = ((fee_payable[DisplayPos] / 10.0) * 3);
Console.WriteLine(customer[DisplayPos] + " "
+ sales_figures[DisplayPos] + " "
+ fee_payable[DisplayPos] + " "
+ seventy_percent_value + " "
+ thirty_percent_value);
}
发布于 2010-12-15 19:00:47
您应该在每个输出字符串中嵌入实际的制表符( \t
转义序列),而不是尝试手动将文本与任意空格字符串对齐:
Console.WriteLine("Customer name" + "\t"
+ "sales" + "\t"
+ "fee to be paid" + "\t"
+ "70% value" + "\t"
+ "30% value");
for (int DisplayPos = 0; DisplayPos < LineNum; DisplayPos++)
{
seventy_percent_value = ((fee_payable[DisplayPos] / 10.0) * 7);
thirty_percent_value = ((fee_payable[DisplayPos] / 10.0) * 3);
Console.WriteLine(customer[DisplayPos] + "\t"
+ sales_figures[DisplayPos] + "\t"
+ fee_payable + "\t\t"
+ seventy_percent_value + "\t\t"
+ thirty_percent_value);
}
发布于 2010-12-15 18:56:22
尝尝这个
Console.WriteLine("{0,10}{1,10}{2,10}{3,10}{4,10}",
customer[DisplayPos],
sales_figures[DisplayPos],
fee_payable[DisplayPos],
seventy_percent_value,
thirty_percent_value);
其中,花括号内的第一个数字是索引,第二个数字是对齐。第二个数字的符号表示字符串应该左对齐还是右对齐。使用负数进行左对齐。
或者看看http://msdn.microsoft.com/en-us/library/aa331875(v=vs.71).aspx
发布于 2015-12-07 11:34:43
只是为了补充罗亚的答案。在c# 6.0中,您现在可以使用字符串插值:
Console.WriteLine($"{customer[DisplayPos],10}" +
$"{salesFigures[DisplayPos],10}" +
$"{feePayable[DisplayPos],10}" +
$"{seventyPercentValue,10}" +
$"{thirtyPercentValue,10}");
这实际上可以是一行,没有所有额外的美元,我只是认为这样读起来更容易一些。
您还可以在System.Console上使用静态导入,允许您这样做:
using static System.Console;
WriteLine(/* write stuff */);
https://stackoverflow.com/questions/4449021
复制相似问题