Форматирование с использованием printf

JavaBeginner
Практиковаться сейчас

Введение

В этом лабораторном занятии вы будете использовать метод printf() в Java. Метод printf() используется для форматирования и вывода строки в консоль. Общий синтаксис метода выглядит следующим образом:

Настройка директории проекта

Откройте терминал и создайте директорию проекта с помощью команды:

mkdir project

Создайте новый файл внутри директории проекта с помощью команды:

touch project_formatting_printf.java

Форматирование целых чисел

Для форматирования целых чисел с использованием printf() мы используем спецификатор формата %d. Ниже приведен пример:

public static void main(String[] args) {
  int num = 10;
  System.out.printf("The number is: %d%n", num);
}

В приведенном выше коде %d - это спецификатор формата для целых чисел, а %n - это символ новой строки.

Скомпилируйте и запустите код с помощью следующих команд:

javac project_formatting_printf.java
java project_formatting_printf

Вы увидите следующий вывод:

The number is: 10

Форматирование десятичных чисел

Для форматирования десятичных чисел используйте спецификатор формата %f. Например:

public static void main(String[] args) {
  double num = 3.14159265359;
  System.out.printf("The number is: %.2f%n", num);
}

В приведенном выше коде %.2f - это спецификатор формата для десятичных чисел с двумя знаками после запятой.

Скомпилируйте и запустите код с помощью следующих команд:

javac project_formatting_printf.java
java project_formatting_printf

Вы увидите следующий вывод:

The number is: 3.14

Форматирование дат

Для форматирования дат мы используем t в качестве символа преобразования и задаем спецификатор формата. Например:

public static void main(String[] args) {
  Date date = new Date();
  System.out.printf("Today is %tA, %<tB %<te, %<tY.%n", date);
}

В приведенном выше коде %tA - это спецификатор формата для полного названия дня недели, а %<tB %<te, %<tY - это спецификатор формата для месяца, дня и года. %n - это символ новой строки.

Скомпилируйте и запустите код с помощью следующих команд:

javac project_formatting_printf.java
java project_formatting_printf

Вы увидите следующий вывод:

Today is Friday, October 15, 2021.

Использование флагов

Флаги используются для добавления специальных характеристик к выводу. Например:

public static void main(String[] args) {
  double num = 12345.6789;
  System.out.printf("The number is: %,.2f%n", num);
}

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

Скомпилируйте и запустите код с помощью следующих команд:

javac project_formatting_printf.java
java project_formatting_printf

Вы увидите следующий вывод:

The number is: 12,345.68

Использование точности

Точность используется для ограничения количества знаков после запятой. Например:

public static void main(String[] args) {
  double num = 1234.56789;
  System.out.printf("The number is: %.2f%n", num);
}

В приведенном выше коде %.2f - это спецификатор формата для десятичных чисел с двумя знаками после запятой.

Скомпилируйте и запустите код с помощью следующих команд:

javac project_formatting_printf.java
java project_formatting_printf

Вы увидите следующий вывод:

The number is: 1234.57

Использование заглавных букв

Для вывода текста в верхнем регистре мы используем заглавный символ преобразования. Например:

public static void main(String[] args) {
  String name = "John Doe";
  System.out.printf("Name: %S%n", name);
}

В приведенном выше коде %S - это спецификатор формата для строк в верхнем регистре.

Скомпилируйте и запустите код с помощью следующих команд:

javac project_formatting_printf.java
java project_formatting_printf

Вы увидите следующий вывод:

Name: JOHN DOE

Использование заполнения

Мы можем использовать заполнитель для добавления пробелов или нулей к выводу. Например:

public static void main(String[] args) {
  int num = 123;
  System.out.printf("The number is: %010d%n", num);
}

В приведенном выше коде %010d - это спецификатор формата для целых чисел с 10 цифрами, а символ заполнителя - 0.

Скомпилируйте и запустите код с помощью следующих команд:

javac project_formatting_printf.java
java project_formatting_printf

Вы увидите следующий вывод:

The number is: 0000000123

Комбинирование спецификаторов формата

Мы можем комбинировать несколько спецификаторов формата, чтобы отформатировать вывод по нашему усмотрению. Например:

public static void main(String[] args) {
  double num = 1234.56789;
  System.out.printf("The number is: %,010.2f%n", num);
}

В приведенном выше коде %010.2f - это спецификатор формата для десятичных чисел с двумя знаками после запятой, 10 цифрами, и символом заполнения 0. , - это разделитель тысяч.

Скомпилируйте и запустите код с помощью следующих команд:

javac project_formatting_printf.java
java project_formatting_printf

Вы увидите следующий вывод:

The number is: 01,234.57

Резюме

Поздравляем! Вы завершили лабораторную работу "Formatting With Printf". Вы можете попрактиковаться в других лабораторных работах в LabEx, чтобы улучшить свои навыки.