【发布时间】:2014-11-26 17:25:41
【问题描述】:
有没有一种快捷的方法可以让控制台中第一行的文本与第二行的文本对齐?
示例:
输入你的名字:查尔斯
输入你的学号:20130140
//输出应该是这样的:
Name Student Number
Charles 20130140
这是我的代码,但方法很长。
class MainClass
{
public static void Main (string[] args)
{
int num, nam;
string snum, name, sec;
int num1, num2, num3;
int var;
int bosh;
Console.WriteLine ("Enter student number: ");
snum = Console.ReadLine ();
Console.WriteLine ("Enter Name: ");
name = Console.ReadLine ();
Console.WriteLine ("Enter Section: ");
sec = Console.ReadLine ();
num1 = snum.Length;
num2 = name.Length;
num3 = sec.Length;
Console.WriteLine (" Student Number Name Section ");
Console.Write("\n");
if (num1 <= 14) {
num = (14 - num1) / 2;
var = (14 - num1) - num;
for (int i = 0; i < num; i++) {
Console.Write (" ");
}
Console.Write (" " + snum);
if (num2 <= 4) {
nam = (4 - num2) / 2;
//sum of all sapaces
bosh = var + nam + 8;
for (int i = 0; i < bosh; i++) {
Console.Write (" ");
}
Console.Write (name);
} else {
nam = ( num2 - 4) / 2;
//sum of all sapaces
bosh = var + (8 - nam);
for (int i = 0; i < bosh; i++) {
Console.Write (" ");
}
Console.Write (name);
}
} else if (num1 > 14){
num = 8 - ((num1 - 14) / 2);
for (int i = 0; i < num; i++) {
Console.Write (" ");
}
Console.Write (snum);
if (num2 <= 4) {
nam = (4 - num2) / 2;
//sum of all sapaces
bosh = nam + num;
for (int i = 0; i < bosh; i++) {
Console.Write (" ");
}
Console.Write (name);
} else {
nam = (num2 - 4) / 2;
//sum of all sapaces
bosh = num - nam;
for (int i = 0; i < bosh; i++) {
Console.Write (" ");
}
Console.Write (name);
}
}
Console.ReadKey ();
}
}
【问题讨论】:
-
你试过跳格(“/t/t”)吗?
-
编写一个将打印表格输出的类(如果您设置了固定宽度的字体)
-
是的,但它与上面的文字不对齐,它影响了它旁边的文字。
标签: c#