Я хочу распечатать вывод следующего формата в файле..
1 Introduction 1
1.1 Scope 1
1.2 Relevance 1
1.2.1 Advantages 1
1.2.1.1 Economic 2
1.2.2 Disadvantages 2
2 Analysis 2
Я не могу заставить номера страниц выравниваться вертикально в строке. Как сделать это??
Вам нужно выровнять первый столбец по левому краю, а второй - по правому.
Вот пример:
String[] titles = {
"1 Introduction",
" 1.1 Scope",
" 1.2 Relevance",
" 1.2.1 Advantages",
" 1.2.1.1 Economic",
" 1.2.2 Disadvantages",
"2 Analysis",
};
for (int i = 0; i < titles.length; i++) {
System.out.println(String.format("%-30s %4d",
titles[i],
i * i * i // just example formula
));
}
Это печатает (как видно на ideone.com):
1 Introduction 0
1.1 Scope 1
1.2 Relevance 8
1.2.1 Advantages 27
1.2.1.1 Economic 64
1.2.2 Disadvantages 125
2 Analysis 216
Формат %-30s %4d
выравнивает влево (флаг -
) первый аргумент шириной 30, а вправо - второй аргумент шириной 4.
Обычно в строковом формате спецификатор, обеспечивающий минимальную ширину:
someStream.write(String.format("%60s %3d", sectionName, pageNumber));