Как распечатать вертикально выровненный текст

Я хочу распечатать вывод следующего формата в файле..

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

Я не могу заставить номера страниц выравниваться вертикально в строке. Как сделать это??

5
задан polygenelubricants 5 July 2010 в 21:16
поделиться

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.

Ссылки на API

10
ответ дан 18 December 2019 в 10:41
поделиться

Обычно в строковом формате спецификатор, обеспечивающий минимальную ширину:

someStream.write(String.format("%60s %3d", sectionName, pageNumber));
6
ответ дан 18 December 2019 в 10:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: