我需要从一个数组打印,以便它有列,但即使在网上浏览后我也无法解决这个问题。我有以下代码:
public void printDirectory() {
System.out.println("Surname " + "Initial " + "Extension");
for (int i = 0; i < directory.length; i++) {
System.out.println(directory[i]);
}
}
public static void main(String[] args) {
ArrayDirectory r = new ArrayDirectory();
r.inputEntries();
r.printDirectory();
}
程序从文本文件输入数据,其中有姓氏,姓名缩写和电话分机。例如,我有“Smith J 0583”(阵列中将有许多不同长度的这些)当我打印出来时,我的格式输出非常糟糕。我知道可以用Java格式化,但我不知道如何使用它,因为字符串都在一个地方。
感谢您的帮助。
答案 0 :(得分:1)
您可以使用System.out.format
执行此操作。
使用Java格式,您可以指定字符串的长度。因此,您可以使每个列的长度设置为字符,以使其格式良好。唯一需要注意的是,您需要知道姓氏的最大长度。在这个例子中,我只想猜12。
String formatString = "%12s %7s %9s\n";
System.out.format(formatString, "Surname", "Initial", "Extension");
System.out.format(formatString, (Object[]) directory[i].split(" "));
formatString的作用是指定3个字符串,一个长度为12个字符,然后长度为7个字符,然后长度为9个字符,全部用空格分隔。然后,它以新行结束。当你使用它输入三个字符串时,它们将始终是相同的长度,只要没有超过长度,这样可以很好地格式化。