【发布时间】:2020-05-16 13:01:55
【问题描述】:
我想将double
数组元素对齐到相关字符串数组元素的右侧。
示例输出:
TITLE TICKET TYPE COST
-------------------------------------
Tulip Garden Entry $10.0
Tour + Ride $20.0
-------------------------------------
Museum Entry $0.0
Guided Tour $5.0
-------------------------------------
...
以下是我到目前为止所做的。
EventData.java
private String[] ticketTypeTitle;
private double[] ticketTypeCost;
...
public String[] getTicketTitles() { return this.ticketTypeTitle; }
public double[] getTicketCosts() { return this.ticketTypeCost; }
Main.java
String pattern = "%-28s %-28s %-1s";
System.out.printf(pattern, "TITLE", "TICKET TYPE", "COST");
System.out.println("-----------------------------------------------);
for (int i = 0; i < eventCount; i++ {
System.out.format(pattern, eventData[i].getTitle(), String.join("\n\t\t\t\t\t\t", eventData[i].getTicketTitles(), "$" + String.join("\n\t\t\t\t\t\t", Arrays.toString(eventData[i].getTicketCosts().replaceAll("\\[|\\]|\\,", "")));
System.out.println("---------------------------------------------");
}
问题 #1: 在 for
循环的第一行,我无法在每个数组元素之前显示美元符号(仅用于门票费用)。
问题 #2: 我希望成本值也与票证类型一致,类似于我上面的输出示例,但我还没有弄清楚如何做到这一点。 p>
感谢您的帮助!
【问题讨论】:
-
使用
printf()
也可以打印数据行。