Программирование на языке Java. Форматный вывод

Содержание

Слайд 2

Программирование на языке Java

Тема 6. Форматный вывод

Программирование на языке Java Тема 6. Форматный вывод

Слайд 3

Сложение двух чисел

Задача. Ввести два целых числа и вывести на экран их

Сложение двух чисел Задача. Ввести два целых числа и вывести на экран
сумму.

Простейшее решение:

int a, b, c;
a = in.nextInt();
b = in.nextInt();
c = a + b;
System.out.print(a+”+”+b+”=”+c);

Слайд 4

Форматный вывод

Форматный вывод – вывод в различные потоки значений разных типов, отформатированных

Форматный вывод Форматный вывод – вывод в различные потоки значений разных типов,
согласно заданному формату (шаблону).
Формат определяется составленной по специальным правилам строкой.

Слайд 5

Форматный вывод в Java

System.out.printf(<форматная строка>,
<список аргументов>);

Форматная строка – символьная строка, которая

Форматный вывод в Java System.out.printf( , ); Форматная строка – символьная строка,
задает шаблон вывода аргументов.
Форматная строка состоит из:
символов, которые копируются в выходной поток;
спецификаторов формата, определяющих способ, в соответствии с которым должны отображаться последующие аргументы.

Слайд 6

Спецификатор формата

Спецификатор формата начинается со знака процента с последующим спецификатором преобразования.
Пример. Спецификатор

Спецификатор формата Спецификатор формата начинается со знака процента с последующим спецификатором преобразования.
формата для десятичного целого числа – %d.

Слайд 7

Форматный вывод. Пример

System.out.printf("%d", a);

Форматная строка

printf – форматный вывод

Целое число подставляется из переменной

Форматный вывод. Пример System.out.printf("%d", a); Форматная строка printf – форматный вывод Целое
a

12

a

12 – значение переменной a

a – имя переменной

Слайд 8

Спецификаторы формата – 1

Спецификаторы формата – 1

Слайд 9

Спецификаторы формата – 2

Некоторые спецификаторы имеют заглавную и прописную формы. При использовании

Спецификаторы формата – 2 Некоторые спецификаторы имеют заглавную и прописную формы. При
заглавной формы буквы отображаются в верхнем регистре.

Слайд 10

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

System.out.printf ("%d%n", c);

вывести целое число и перевод строки

это

Форматирование целых чисел – 1 System.out.printf ("%d%n", c); вывести целое число и
число взять из переменной c

System.out.printf ("Результат: %d", c);

System.out.printf("%d+%d=%d%n", a, b, c );

форматная строка

список аргументов

a, b, c

System.out.printf("%d+%d=%d%n",a, b, a+b);

арифметическое выражение

Слайд 11

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

System.out.printf (“16-ая с/c %x", 196);

16-ая с/c c4

8-ая с/c

Форматирование целых чисел – 2 System.out.printf (“16-ая с/c %x", 196); 16-ая с/c
304

System.out.printf (“8-ая с/c %o", 196);

System.out.printf (“16-ая с/c %X", 196);

16-ая с/c C4

Слайд 12

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

double x = 12345.6789;
System.out.printf ("%f", x);

12345,678900

System.out.printf ("%e", x);

1.234568e+04

Научная нотация: 1,23456·104

System.out.printf ("%E",

Форматирование вещественных чисел double x = 12345.6789; System.out.printf ("%f", x); 12345,678900 System.out.printf
x);

1.234568E+04

минимальное число позиций, 6 цифр в дробной части

Слайд 13

Спецификаторы %n и %%

Отличаются от других тем, что они не соответствуют аргументу.

Спецификаторы %n и %% Отличаются от других тем, что они не соответствуют
Представляют собой управляющие последовательности:
%n – вставляет перевод строки
%% – вставляет знак процента.

System.out.printf (“Копирование файла
%nПеремещение на %d%% завершено", 88);

Копирование файла
Перемещение на 88% завершено

Слайд 14

Указание минимальной ширины поля – 1

Спецификатор минимальной ширины – целое число, помещенное

Указание минимальной ширины поля – 1 Спецификатор минимальной ширины – целое число,
между символом % и кодом преобразования формата.
Спецификатор минимальной ширины дополняет вывод пробелами, обеспечивая заданную минимальную длину.
Если строка или число получаются длиннее, чем заданный минимум, то число выводится полностью.
По умолчанию, дополнение осуществляется пробелами.

Слайд 15

Указание минимальной ширины поля – 2

int x = 1234;
System.out.printf ("%d\n", x);

1234

System.out.printf ("%9d\n",

Указание минимальной ширины поля – 2 int x = 1234; System.out.printf ("%d\n",
x);

минимальное число позиций

1234

всего 9 позиций

Слайд 16

Указание минимальной ширины поля – 3

Чтобы дополнить число лидирующими нулями, нужно поместить

Указание минимальной ширины поля – 3 Чтобы дополнить число лидирующими нулями, нужно
0 перед спецификатором ширины поля.

System.out.printf ("%09d\n", x);

000001234

всего 9 позиций, пустые заполнены нулями

Слайд 17

Указание минимальной ширины поля – 4

double x = 10.12345;
System.out.printf(”|%f|%n|%12f|%n|%012f|",
x, x, x);

|10,123450|
|

Указание минимальной ширины поля – 4 double x = 10.12345; System.out.printf(”|%f|%n|%12f|%n|%012f|", x,
10,123450|
|00010,123450|

Слайд 18

Указание точности – 1

Спецификатор точности может быть применен к спецификаторам формата %f,

Указание точности – 1 Спецификатор точности может быть применен к спецификаторам формата
%e, %g и %s.
Спецификатор точности следует за спецификатором минимальной ширины поля (если таковой имеется) и состоит из точки с последующим целым числом.

Слайд 19

Указание точности – 2

Спецификатор точности для данных с плавающей точкой (%f или

Указание точности – 2 Спецификатор точности для данных с плавающей точкой (%f
%e) определяет количество отображаемых десятичных разрядов.
%10.4f – число в 10 символов шириной с 4 разрядами после запятой.
При использовании %g точность определяется количеством значащих десятичных разрядов.
Точность по умолчанию – 6 знаков после запятой.

Слайд 20

Указание точности – 3

double x = 12345.6789;
System.out.printf ("%10.3f", x);

12345,679

всего 10 позиций,

Указание точности – 3 double x = 12345.6789; System.out.printf ("%10.3f", x); 12345,679
3 цифры в дробной части

System.out.printf ("%10.2e", x);

1.23e+04

всего 10 позиций, 2 цифры в дробной части мантиссы

Вопрос. Как вывести

00012345,68

System.out.printf ("%011.2f", x);

Слайд 21

Указание точности – 4

Для строк спецификатор точности задает максимальную ширину поля. Если

Указание точности – 4 Для строк спецификатор точности задает максимальную ширину поля.
строка длиннее максимальной ширины, конечные символы усекаются.

System.out.printf ("%.15s%n",
"Форматировать в Java очень просто");

Форматировать в

15 символов

Слайд 22

Флаги формата – 1

Флаги формата позволяют управлять различными аспектами преобразования.
Все флаги формата

Флаги формата – 1 Флаги формата позволяют управлять различными аспектами преобразования. Все
– одиночные символы, которые следуют за знаком % в спецификаторе формата.

Слайд 23

Флаги формата – 2

Внимание! Не все флаги применимы ко всем спецификаторам формата.

Флаги формата – 2 Внимание! Не все флаги применимы ко всем спецификаторам формата.

Слайд 24

Выравнивание вывода

По умолчанию весь вывод выравнивается вправо.
Для выравнивания по левому краю, нужно

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

System.out.printf (“|%10.2f|%n",123.123);
System.out.printf (“|%-10.2f|%n",123.123);

| 123,12|
|123,12 |

Слайд 25

Флаги пробела, +, 0 и ( – 1

Данные флаги работаю со знаком

Флаги пробела, +, 0 и ( – 1 Данные флаги работаю со
числа:

System.out.printf ("%d%n",100);
System.out.printf ("% d%n",100);
System.out.printf ("%+d%n",100);
System.out.printf ("%05d%n",100);
System.out.printf ("%(d%n",100);

100
100
+100
00100
100

Слайд 26

Флаги пробела, +, 0 и ( – 2

Данные флаги работаю со знаком

Флаги пробела, +, 0 и ( – 2 Данные флаги работаю со
числа:

System.out.printf ("%d%n",-100);
System.out.printf ("% d%n",-100);
System.out.printf ("%+d%n",-100);
System.out.printf ("%05d%n",-100);
System.out.printf ("%(d%n",-100);

-100
-100
-100
-0100
(100)

Слайд 27

Флаг запятая

При отображении больших чисел удобно использовать разделители групп. Например 1234567 читается

Флаг запятая При отображении больших чисел удобно использовать разделители групп. Например 1234567
легче в виде 1 234 567. Для добавления спецификаторов группирования служит флаг запятая.

System.out.printf ("%,.2f", 4356783497.34);

4 356 783 497,34

Слайд 28

Использование индекса аргументов – 1

Обычно порядок аргументов и спецификаторов совпадает (слева направо),

Использование индекса аргументов – 1 Обычно порядок аргументов и спецификаторов совпадает (слева
т.е. первый спецификатор относится к первому аргументу, второй – ко второму и т.д.

System.out.printf("%d+%d=%d\n", a, b, c );

a, b, c

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

Слайд 29

Использование индекса аргументов – 2

Индекс аргумента следует за % в спецификаторе формата

Использование индекса аргументов – 2 Индекс аргумента следует за % в спецификаторе
и имеет вид n$, где n – индекс нужного аргумента, начиная с 1.

System.out.printf("%3$d %1$d %2$d",
10, 20, 30);

30 10 20

Слайд 30

Использование индекса аргументов – 3

Преимущество индексирования аргументов: повторное использование аргумента.

System.out.printf("%1$d в шестнадцатеричном

Использование индекса аргументов – 3 Преимущество индексирования аргументов: повторное использование аргумента. System.out.printf("%1$d

формате это %1$X%n", 255);

255 в шестнадцатеричном формате это FF