Форматирование выходного файла Java

#java #format

#java #форматирование

Вопрос:

У меня возникли небольшие проблемы с форматированием выходного файла для себя, чтобы его было легко читать. Я пытаюсь вывести файл, такой как:

 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   " d"   "n", (int)colleges[i].numOfStudents);
      fmt.flush();
}  
  

что дает мне:

 eastman school of music                 800
clark university                1100
walla walla college                1100
drew                1200
juilliard                1200
  

Потому что я просто добавляю отступы с конца названия колледжа. Есть ли способ заполнить всю строку целиком, чтобы все строки имели постоянную длину?

Спасибо всем за помощь

Ответ №1:

Да, выведите название вашего колледжа с выравниванием по левому краю и дополнением до определенной длины, затем выведите номер вашего студента с выравниванием по правому краю и дополнением до определенной длины:

 fmt.format("%-20sdn", colleges[i].nameOfSchool, (int) colleges[i].numOfStudents);
  

Ответ №2:

Возможно, вы захотите добавить названия школ, которые также будут отформатированы, следующим образом:

 fmt.format("%1$20s %1$5dn", colleges[i].nameOfSchool, (int)colleges[i].numOfStudents);
  

Следующая ссылка может дать вам больше информации о форматировании:
http://download.oracle.com/javase/1.5.0/docs/api/java/util/Formatter.html

Комментарии:

1. Я считаю, что так и должно быть "%1$20s %2$5dn" .