如何使用 printf 以 table 形式打印
how to use printf to print in a table form
我想打印这样的东西:
===================================================================================================
Section 1 Section 2 Section 3
--------------------------------------------------------------------------------------------------
1110 - Ahmed Sami - Active 1116 - Maher Alsolami - Active 1122 - Waleed Alamri - Active
1111 - Mohammed Turkey - Active 1117 - Mohanned Sami - Active 1123 - Sami Alghamdi - Active
1112 - Sami Omer - Active 1118 - Feras Ahmed - Active 1124 - Majed Alharbi - Active
1113 - Bander Ali - Active 1119 - Nawaf Algarni - Active 1125 - Anwar Aljohani - Active
1114 - Basem Alzahrani - Active 1120 - Fahad Alharthi - Active 1120 - Fahad Alharthi - Active
1115 - Turkey Almutairi - Active 1121 - Anas Batarfi - Active
==================================================================================================
但我明白了:
===================================================================================================
Section 1 Section 2 Section 3
--------------------------------------------------------------------------------------------------
1110 - Ahmed Sami - Active 1116 - Maher Alsolami - Active
1111 - Mohammed Turkey - Active 1117 - Mohanned Sami - Active
1112 - Sami Omer - Active 1118 - Feras Ahmed - Active
1113 - Bander Ali - Active 1119 - Nawaf Algarni - Active
1114 - Basem Alzahrani - Active 1120 - Fahad Alharthi - Active
1115 - Turkey Almutairi - Active 1121 - Anas Batarfi - Active
==================================================================================================
这是我使用的代码(代码最后确实给出了一个错误,我只想知道如何像第一个 table 那样排序):
System.out.println("\nThe first distribution for students among the available sectios ");
System.out.println("===================================================================================================\n"
+ "\n"
+ " Section 1 Section 2 Section 3\n"
+ "--------------------------------------------------------------------------------------------------");
for (int i = 0; i < 6; i++) {
System.out.printf("%s%s%s%s", students[i].getStudID() + " - ", students[i].getFname() + " ", students[i].getLname() + " - ", students[i].getStatus() + " ");
System.out.printf("%s%s%s%s", students[i + 6].getStudID() + " - ", students[i + 6].getFname() + " ", students[i + 6].getLname() + " - ", students[i + 6].getStatus() + " ");
System.out.printf("%s%s%s%s", students[i + 12].getStudID() + " - ", students[i + 12].getFname() + " ", students[i + 12].getLname() + " - ", students[i + 12].getStatus() + " ");
System.out.println("");
}
而不是 %s%s%s%s
,对各个部分使用足够的 space,例如在下面的语句中,%6s%20s%20s%20s
为 students[i].getStudID()
保留了 6 characters-wide space,为 students[i].getFname()
保留了 20 characters-wide space,20 characters-wide space students[i].getLname()
,10 characters-wide space students[i].getStatus()
.
System.out.printf("%6s%20s%20s%10s", students[i].getStudID() + " - ", students[i].getFname() + " ", students[i].getLname() + " - ", students[i].getStatus() + " ");
您可以根据需要调整所需的 space。
我想打印这样的东西:
===================================================================================================
Section 1 Section 2 Section 3
--------------------------------------------------------------------------------------------------
1110 - Ahmed Sami - Active 1116 - Maher Alsolami - Active 1122 - Waleed Alamri - Active
1111 - Mohammed Turkey - Active 1117 - Mohanned Sami - Active 1123 - Sami Alghamdi - Active
1112 - Sami Omer - Active 1118 - Feras Ahmed - Active 1124 - Majed Alharbi - Active
1113 - Bander Ali - Active 1119 - Nawaf Algarni - Active 1125 - Anwar Aljohani - Active
1114 - Basem Alzahrani - Active 1120 - Fahad Alharthi - Active 1120 - Fahad Alharthi - Active
1115 - Turkey Almutairi - Active 1121 - Anas Batarfi - Active
==================================================================================================
但我明白了:
===================================================================================================
Section 1 Section 2 Section 3
--------------------------------------------------------------------------------------------------
1110 - Ahmed Sami - Active 1116 - Maher Alsolami - Active
1111 - Mohammed Turkey - Active 1117 - Mohanned Sami - Active
1112 - Sami Omer - Active 1118 - Feras Ahmed - Active
1113 - Bander Ali - Active 1119 - Nawaf Algarni - Active
1114 - Basem Alzahrani - Active 1120 - Fahad Alharthi - Active
1115 - Turkey Almutairi - Active 1121 - Anas Batarfi - Active
==================================================================================================
这是我使用的代码(代码最后确实给出了一个错误,我只想知道如何像第一个 table 那样排序):
System.out.println("\nThe first distribution for students among the available sectios ");
System.out.println("===================================================================================================\n"
+ "\n"
+ " Section 1 Section 2 Section 3\n"
+ "--------------------------------------------------------------------------------------------------");
for (int i = 0; i < 6; i++) {
System.out.printf("%s%s%s%s", students[i].getStudID() + " - ", students[i].getFname() + " ", students[i].getLname() + " - ", students[i].getStatus() + " ");
System.out.printf("%s%s%s%s", students[i + 6].getStudID() + " - ", students[i + 6].getFname() + " ", students[i + 6].getLname() + " - ", students[i + 6].getStatus() + " ");
System.out.printf("%s%s%s%s", students[i + 12].getStudID() + " - ", students[i + 12].getFname() + " ", students[i + 12].getLname() + " - ", students[i + 12].getStatus() + " ");
System.out.println("");
}
而不是 %s%s%s%s
,对各个部分使用足够的 space,例如在下面的语句中,%6s%20s%20s%20s
为 students[i].getStudID()
保留了 6 characters-wide space,为 students[i].getFname()
保留了 20 characters-wide space,20 characters-wide space students[i].getLname()
,10 characters-wide space students[i].getStatus()
.
System.out.printf("%6s%20s%20s%10s", students[i].getStudID() + " - ", students[i].getFname() + " ", students[i].getLname() + " - ", students[i].getStatus() + " ");
您可以根据需要调整所需的 space。