#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"
.