0
打印表格的形式,我不知道如何言傳。我試圖在運行後在我的cmd中實現這一點。動態列大小
Event Average Stdev Weight
Logins 4.50 1.25 2
Total time online 287.15 42.12 1
Emails sent 65.40 30.71 1
Orders processed 150.73 20.13 1
Pizza's ordered online 2.03 1.06 0.5
但現在我的結果是這樣的
Event Average Stdev Weight
Logins 3.33 1.25 2.0
Time Online 335.33 33.52 1.0
Emails Sent 66.00 15.51 1.0
Orders processed 150.67 17.25 1.0
Pizza's Ordered 2.33 1.25 0.5
事件名稱可長可短,達到用戶輸入。無論事件名稱的長度如何,可以很好地格式化。我的價值都是正確的,只是格式。以下是我的打印代碼。
Formatter formatter = new Formatter();
System.out.println(formatter.format("%s %20s %20s %20s", "Event", "Average", "Stdev", "Weight"));
int count = 0;
for (Map.Entry<String, Double> entry : eventsMap.entrySet()) {
formatter = new Formatter();
String event = entry.getKey();
double weight = entry.getValue();
System.out.println(formatter.format("%s %20s %20s %20s", event, average[count], stdev[count], weight));
count++;
}
所以我只需要找到事件長度的最大長度並相應地更改%-20.20s? –
是的,否則如果你不想找到最大長度,你可以決定一個固定的長度,並最終將字符串截斷,但對齊保持正確。 –