【发布时间】:2019-06-08 13:47:10
【问题描述】:
我想创建一个如下所示的格式化图表:
每个字段中的字符数分别为 4、12、17、40 和 4。这些字段也是左对齐的。
通过使用我在下面发布的代码,我的结果如下所示:
格式化代码sn-p:
for (Tasks examined : shortList) {
String yesNo = examined.isDone() == true ? "yes" : "no";
System.out.printf("%1$-4s" + "| " + "%2$tY.%<tm.%<-12td."
+ "| " + "%3$-17s" + "| " + "%4$-40s" + "| " + yesNo + "\n"
, examined.getNumber(), examined.getDeadline()
, importanceLevel, examined.getName())
}
变量类型有:
examined.getNumber() //integer
examined.getDeadline() //DateTime
importanceLevel //String
examined.getName() //String
我研究了 JavaDocs here 中的 Formatter 类。但我无法解决问题。
这里的主要问题是“日期”字段末尾的点 (.)。它不应该在日期和句号之间有所有空格。
我想用 -12 标志来组织“日期”元素的宽度,但这只是将其余部分作为上面的最后一个点。
如何解决?
【问题讨论】:
-
你能展示这些变量在格式化之前的样子吗? :
examined.getNumber(), examined.getDeadline(), importanceLevel, examined.getName() -
当然。按顺序:正常数字,例如1、日期以DateTime格式存储:2018和12和12,下一个是String,最后一个也是。
-
请考虑选择我的答案作为接受的解决方案,如果它有助于解决您的问题。您可以通过单击答案旁边的复选标记来做到这一点。您可以查看this guide 了解如何操作。克什