系统输出中的 Java 选项卡
Posted
技术标签:
【中文标题】系统输出中的 Java 选项卡【英文标题】:Java tab in system out 【发布时间】:2016-09-16 10:47:12 【问题描述】:我必须创建一个应用程序来打印学生的结果。在作业中,我们必须使用\t
,以便将所有内容标记在一个好的行中。
for(int i = 0; i< 7; i++)
System.out.println("Vak/Project :" + naamVak[i] + "\t\tCijfer: " +
inputCijfer[i] + "\tBehaalde studiepunten: " + studiepuntenVAK[i]);
它会打印项目的名称(名为 naamVak
的数组)、结果 (inputCijfer
) 以及每个项目获得的分数 (studiepuntenVak
)。
当我将结果打印到控制台时,显示如下:
Vak/Project :Fasten Your Seatbelts Cijfer: 1.0 Behaalde studiepunten: 0
Vak/Project :Programming Cijfer: 2.0 Behaalde studiepunten: 0
Vak/Project :Databases Cijfer: 3.0 Behaalde studiepunten: 0
Vak/Project :Personal Skills Cijfer: 4.0 Behaalde studiepunten: 0
Vak/Project :Project Skills Cijfer: 5.0 Behaalde studiepunten: 0
Vak/Project :Infrastructure Cijfer: 6.0 Behaalde studiepunten: 3
Vak/Project :Network Engineering 1 Cijfer: 7.0 Behaalde studiepunten: 3
我怎样才能将输出全部放在正确的行中?
【问题讨论】:
您可以“计算”已打印部分的长度,然后从那里开始。 /t 不考虑上一行或下一行 看看format 方法。 StringUtils#rightPad 可能会有所帮助。 制表符,即使在他的计数中得到纠正,也不能保证在所有环境中。阅读有关格式的信息,f.e.类 java.util.Formatter 和固定长度格式 制表符通常被计为每 8 个字符,但并非总是如此 【参考方案1】:您可以使用 String.format 方法(使用类似 printf 的语法),并为宽度提供一个值。语法在这里:https://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html#syntax,你可以这样使用:
System.out.println(String.format("%20s %20s %20s", naamVak[i], inputCijfer[i], studiepuntenVAK[i]));
这假设每列的最大输入宽度为 20 个字符
【讨论】:
谢谢,真的谢谢!我回家后会试试这个。完成后会给你一些反馈。【参考方案2】:https://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html
你可以使用String.format方法
String s1 = String.format("test right alignment: %13s %50s ",'test a short string', 'test a very very very long string' );
String s2 = String.format("test left aligmnent: %-13s %-50s ",'test a short string', 'test a very very very long string' );
System.out.println(s1);
System.out.println(s2);
【讨论】:
【参考方案3】:System.out.println(String.format("%20s %20s %20s %20s %20s", "Vak/Project: ", naamVak[i], "Cijfer: ", inputCijfer[i], "Behaalde studiepunten: ", studiepuntenVAK[i]));
仍然给用户一个奇怪的视图。这是控制台的输出:
Vak/Project: Fasten Your Seatbelts Cijfer: 8.6 Behaalde studiepunten:
Vak/Project: Programming Cijfer: 7.5 Behaalde studiepunten:
Vak/Project: Databases Cijfer: 2.1 Behaalde studiepunten:
Vak/Project: Personal Skills Cijfer: 2.3 Behaalde studiepunten:
Vak/Project: Project Skills Cijfer: 2.4 Behaalde studiepunten:
Vak/Project: Infrastructure Cijfer: 2.5 Behaalde studiepunten:
Vak/Project: Network Engineering 1 Cijfer: 2.6 Behaalde studiepunten:
【讨论】:
您不应该使用答案作为交换帖子的方式,但无论如何,这是因为第一行和最后一行包含超过 20 个字符的条目:“系好安全带”和“网络工程” 1"。例如,您可以将“%20s %20s %20s %20s %20s”调整为喜欢“%20s %30s %20s %20s %20s”之类的以上是关于系统输出中的 Java 选项卡的主要内容,如果未能解决你的问题,请参考以下文章
Java Build Path 中的 Order 和 Export 选项卡有啥用
如何在java脚本中打开Chrome中的新选项卡而不是新窗口