我在为自己格式化输出文件时遇到了一些麻烦,以便于阅读。我试图输出文件,如:
Name of School Size of School
-------------- --------------
Blblah blah 1300
Blah blah blah 11300
Blah blah blah asdf 14220
Blah bblah 1300
但是我遇到了麻烦。目前我使用以下代码来获得以下输出:
File file1 = new File("src\\sortedInt.txt");
Formatter fmt = new Formatter(file1);
HelperMethods.quickSortStudents(colleges, 0, colleges.length - 1);
for(int i = 0; i < colleges.length; i++)
{
fmt.format(colleges[i].nameOfSchool + "%20d" + "\n", (int)colleges[i].numOfStudents);
fmt.flush();
}
给了我:
eastman school of music 800
clark university 1100
walla walla college 1100
drew 1200
juilliard 1200
因为我只是从大学名字的末尾填充。无论如何填充整个字符串使所有字符串都是恒定的长度?
谢谢大家的帮助
答案 0 :(得分:4)
是的,输出您的大学名称左对齐并填充到一定长度,然后将您的学生数量右对齐并填充到一定长度:
fmt.format("%-20s%10d\n", colleges[i].nameOfSchool, (int) colleges[i].numOfStudents);
答案 1 :(得分:2)
您可能还想添加要格式化的学校的名称,如下所示:
fmt.format("%1$20s %1$5d\n", colleges[i].nameOfSchool, (int)colleges[i].numOfStudents);
以下链接可让您更深入地了解格式: http://download.oracle.com/javase/1.5.0/docs/api/java/util/Formatter.html