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

Вывод целого числа

System.out.printf("%d", 7845); // --> "7845"

Вывод целого числа с разделением тысяч

System.out.printf("%,d", 7845); // --> "7 845"

Число менее 7 знаков будет «подвинуто» вправо на недостающее количество знаков.

System.out.printf("%7d", 7845); // --> " 7845"

Число менее 7 знаков будет дополнено нулями слева на недостающее количество знаков.

System.out.printf("%07d", 7845); // --> "0007845"

Число будет дополнено знаком + и, если оно менее 7 знаков, то будет дополнено нулями на недостающее количество знаков.

System.out.printf("%+07d", 7845); //--> "+007845"

Число будет выровнено по левому краю и, если оно менее 7 знаков, то будет дополнено пробелами справа на недостающее количество знаков.

System.out.printf("%-7d", 7845); // --> "7845 "

Разумеется вместо 7 можно использовать любое другое положительное целое число.

Форматирование чисел с плавающей точкой

Вывод числа e. Автоматическое округление до 6 знаков после запятой.

System.out.printf("%f", Math.E); // --> "2,718282"

Число менее 10 знаков будет «подвинуто» вправо на недостающее количество знаков.

System.out.printf("%10f", Math.E); // --> " 2,718282"

Число менее 10 знаков будет дополнено нулями слева на недостающее количество знаков.

System.out.printf("%010f", Math.E); // --> "002,718282"

Число будет дополнено знаком + и, если оно менее 10 знаков, то будет дополнено нулями на недостающее количество знаков.

System.out.printf("%+010f", Math.E); // --> "+02,718282"

Число будет выведено с 15 знаками после запятой.

System.out.printf("%.15f", Math.E); // --> "2,718281828459045"

Число будет выведено с 3-мя знаками после запятой и, если оно менее 8 символов, то будет «подвинуто» вправо на недостающее количество знаков.

System.out.printf("%8.3f", Math.E); // --> " 2,718"

Число будет выровнено по левому краю, выведено с 3-мя знаками после запятой и, если оно менее 8 знаков, то будет дополнено пробелами справа на недостающее количество знаков.

System.out.printf("%-8.3f", Math.E); // --> "2,718 "

Форматирование строк

Вывод строки.

System.out.printf("%s%n", "Hello"); // --> "Hello"

Если строка содержит менее 10 символов, то «подвинуть » ее вправо на недостающее количество символов.

System.out.printf("%10s%n", "Hello"); // --> " Hello"

Строка будет выровнена по левому краю и, если она менее 10 символов, то будет дополнена справа пробелами на недостающее количество символов.

System.out.printf("%-10s%n", "Hello"); // --> "Hello "

Выведет первые 3 символа строки.

System.out.printf("%.3s%n", "Hello"); // --> "Hel"

Выведет первые 3 символа строки и подвинет их вправо на недостающее до 8 количество символов.

System.out.printf("%8.3s%n", "Hello"); // --> " Hel"

Локализация

В разных странах некоторые записи принято производить по-разному. Например, в одних странах дробное число принято писать с точкой «3.68», а в других с запятой «3,68». Java нам позволяет соблюдать эти традиции. Метод printfимеет еще одну сигнатуру:

printf(Locale l, String format, Object… args)

Первым аргументом стоит Locale l, который и определяет локализацию. Для того, чтобы использовать локализацию необходимо вначале файла с вашим кодом импортировать библиотеку java.util.Locale.

import java.util.Locale;

Рассмотрим несколько примеров применения:

System.out.printf(Locale.ENGLISH,"%,d%n", 1000000 );// 1,000,000

System.out.printf(Locale.GERMAN,"%,d%n", 1000000 ); // 1.000.000

System.out.printf(Locale.FRANCE,"%,d%n", 1000000 ); // 1 000 000

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

System.out.printf(Locale.ENGLISH,"%.2f%n", 9.87 ); //9.87

System.out.printf(Locale.FRANCE,"%.2f%n", 9.87 ); //9,87

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

Наши рекомендации