Java输出文件格式化

时间:2011-04-28 22:10:14

标签: java format

我在为自己格式化输出文件时遇到了一些麻烦,以便于阅读。我试图输出文件,如:

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

因为我只是从大学名字的末尾填充。无论如何填充整个字符串使所有字符串都是恒定的长度?

谢谢大家的帮助

2 个答案:

答案 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