Java Academy · Урок

Выравнивание таблиц

Форматируйте столбцы данных

Урок 4 из 413 шагов

«Выравнивание таблиц» — бесплатный урок Java Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Java Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Java Academy содержит 4 уроков всего.

Зачем нужно выравнивание?

При выводе строк данных неровные столбцы трудно читать. В выровненных столбцах числа и подписи аккуратно располагаются друг под другом.

Ширина и флаги printf позволяют создавать аккуратные таблицы прямо в консоли.

Выравнивание по правому краю по умолчанию

Ширина вроде %10s резервирует 10 символов и добавляет заполнение слева, поэтому текст выравнивается по правому краю.

Числа ведут себя так же, поэтому столбцы чисел выравниваются по правому краю.

public class Main {
    public static void main(String[] args) {
        System.out.printf("[%10s]\n", "hi");
    }
}

Выравнивание по левому краю с помощью минуса

Добавьте флаг -, чтобы выровнять значение по левому краю поля. %-10s помещает текст слева и добавляет заполнение справа.

Выравнивание по левому краю идеально подходит для подписей и имён.

public class Main {
    public static void main(String[] args) {
        System.out.printf("[%-10s]\n", "hi");
    }
}

Два столбца

Объедините подпись, выровненную по левому краю, с числом, выровненным по правому краю, чтобы создать строку. %-10s%5d задаёт ширину имени 10 символов и ширину числа 5 символов.

Используйте один и тот же формат для каждой строки, и столбцы выровняются.

public class Main {
    public static void main(String[] args) {
        System.out.printf("%-10s%5d\n", "Apples", 3);
        System.out.printf("%-10s%5d\n", "Pears", 12);
    }
}

Простая таблица

Использование одной и той же строки формата для заголовка и каждой строки данных сохраняет выравнивание.

Здесь три строки используют один шаблон, поэтому столбцы остаются аккуратными.

public class Main {
    public static void main(String[] args) {
        String fmt = "%-8s%6d\n";
        System.out.printf(fmt, "Name", 0);
        System.out.printf(fmt, "Ann", 90);
        System.out.printf(fmt, "Bob", 7);
    }
}

Выравнивание дробных чисел

Для денежных значений или измерений объедините ширину и точность: %8.2f выравнивает число по правому краю в поле шириной 8 символов с двумя знаками после запятой.

Десятичные разделители в разных строках располагаются вертикально друг под другом.

public class Main {
    public static void main(String[] args) {
        System.out.printf("%8.2f\n", 5.5);
        System.out.printf("%8.2f\n", 123.4);
    }
}

Заголовок и числа

Сочетайте в одной строке столбцы со строками и числами. Левая подпись и цена, выровненная по правому краю, естественно смотрятся вместе.

Этот шаблон лежит в основе большинства отчётов в консоли.

public class Main {
    public static void main(String[] args) {
        System.out.printf("%-10s%8.2f\n", "Coffee", 3.5);
        System.out.printf("%-10s%8.2f\n", "Cake", 12.0);
    }
}

Выбор ширины столбцов

Выбирайте ширину не меньше длины самого длинного значения, иначе текст выйдет за границы столбца и нарушит выравнивание.

Если значение шире поля, printf выводит его полностью и игнорирует заданную ширину.

public class Main {
    public static void main(String[] args) {
        System.out.printf("[%3s]\n", "toolong");
    }
}

Обход строк в цикле

Цикл и одна общая строка формата упрощают создание целой таблицы.

На каждой итерации выводится одна выровненная строка, поэтому добавление данных не нарушает макет.

public class Main {
    public static void main(String[] args) {
        String[] names = {"Sun", "Mon", "Tue"};
        int[] hrs = {8, 12, 5};
        for (int i = 0; i < names.length; i++) {
            System.out.printf("%-6s%4d\n", names[i], hrs[i]);
        }
    }
}

Сочетание со String.format

Вы можете создавать каждую выровненную строку с помощью String.format, если текст нужен до его вывода.

Правила ширины и выравнивания остаются теми же.

public class Main {
    public static void main(String[] args) {
        String row = String.format("%-8s%5d", "Total", 99);
        System.out.println(row);
    }
}

Табуляции и ширина

Можно разделять столбцы с помощью табуляций \t, но позиции табуляции различаются, а длинные значения нарушают выравнивание.

Фиксированная ширина, например %-10s, обеспечивает надёжные и предсказуемые столбцы, поэтому для таблиц лучше использовать её.

Быстрая проверка

Какой формат выравнивает имя по левому краю в поле шириной 12 символов?

Итоги

Вы создали выровненные таблицы с помощью полей ширины, флага - для выравнивания по левому краю и %8.2f для аккуратных столбцов с десятичными числами.

С помощью printf, String.format и выравнивания вы можете аккуратно форматировать любой вывод в консоли.

Можно начать бесплатно

Изучай Java с ИИ-репетитором — бесплатно

Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.

Курсы
104
Уроки
374

Часто задаваемые вопросы

Урок «Выравнивание таблиц» бесплатный?

Да — полный текст урока «Выравнивание таблиц» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Java Academy, подпишись на CoddyKit PRO. Курс Java Academy содержит 4 уроков всего.

Чему я научусь в уроке «Выравнивание таблиц»?

Форматируйте столбцы данных Ты практикуешь Java Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Java Academy?

Предыдущий опыт не требуется. Java Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.

Сколько времени занимает урок «Выравнивание таблиц»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Java Academy?

Да. Каждый урок Java Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Основы printf
  2. Форматы чисел и десятичных дробей
  3. String.format
  4. Выравнивание таблиц
← Назад к Java Academy