Привет, Люди 👋 Я надеюсь, что у вас все хорошо. Да, значит, вы прочитали название статьи, printf() на Java , Я недавно столкнулся с этим методом, я провел некоторое исследование по этому поводу и подумал написать об этом. Так что это будет интересно, а также полезно для конкурентного программирования. На самом деле это часть форматирования в java.
Давайте начнем…
Что такое форматирование
Вы все знаете, что есть два метода println и печать для печати стандартного вывода, но в java.io в пакете есть этот класс Поток печати который имеет два метода форматирования формат и printf , эти оба метода могут быть использованы для замены печати и println методы. Оба этих метода, формат и printf эквивалентны друг другу. Оба этих метода дают вам больше контроля над выводом на печать, когда в вывод включаются числа, вскоре вы поймете это лучше. В этой статье мы поговорим только о printf .
System.out.printf() Система.out.printf()
Итак, теперь вы уже знаете, что этот метод является частью java.io . Класс PrintStream , этот метод обеспечивает форматирование строк, аналогичное функции printf() на языке Си. Это также перегруженный метод класса PrintStream . Метод возвращает выходной поток и принимает до трех параметров в зависимости от перегрузки.
Давайте сначала рассмотрим его синтаксис:-
System.out.printf(строка); (строковый параметр прост, как метод печати())
System.out.printf (формат, аргументы) ;
System.out.printf (язык, формат, аргументы);
Формат
Для указания правил форматирования мы используем параметр format. Эта строка состоит из литералов и спецификаторов формата. Правила начинаются с символа %. Аргументы требуются только в том случае, если в строке формата есть спецификаторы формата. Спецификаторы формата включают флаги, ширину, точность и символы преобразования в приведенной ниже последовательности:-
%[флаги][ширина][.точность] преобразование-символ
Спецификаторы в скобках являются необязательными.
Символы Преобразования
- d : форматирует десятичное целое число [байт, короткий, int, длинный]
- f : форматирует число с плавающей запятой [плавающее, двойное]
- c : форматирует символ Заглавная буква C будет в верхнем регистре
- с : форматирует строку Заглавные буквы будут в верхнем регистре всех букв в строке
- n : добавляет новый символ строки
- t : форматирует значения даты/времени.
Есть много других символов преобразования, мы увидим еще несколько в примерах
Флаги
[Флаги] определяют стандартные способы изменения выходных данных.
- – : выравнивание по левому краю (по умолчанию выравнивание по правому краю)
- + : выведите знак плюс (+) или минус (-) для числового значения
- 0 : принудительно заполняет числовые значения нулем (по умолчанию заполнение пустым)
- ** (пробел)* *: отображать знак минус, если число отрицательное, или пробел, если оно положительное.
Ширина
[Ширина] задает ширину поля для вывода аргумента. Он представляет минимальное количество символов, которые должны быть записаны в выходные данные.
Точность
[.точность] указывает количество цифр точности или длину подстроки, которую нужно извлечь из строки. Числа округляются с указанной точностью.
Примеры
Форматирование строк
System.out.printf("%s", "Hello");
public class Demo { public static void main(String[] args) { System.out.printf("%s", "Hello"); } }
Вы можете запустить свой код онлайн здесь
Это изменит строку в верхний регистр
System.out.printf("%S", "Hello");
public class Demo { public static void main(String[] args) { System.out.printf("%S", "Hello"); } }
Вы можете запустить свой код онлайн здесь
* В этом примере я использовал – флаг *
public class Demo { public static void main(String[] args) { System.out.printf("'%-10s'", "Hello"); } }
Вы можете запустить свой код онлайн здесь
Форматирование символов
System.out.printf("%c", "e");
public class Demo { public static void main(String[] args) { System.out.printf("%c", 'e'); } }
Вы можете запустить свой код онлайн здесь
Этот символ изменит символ в верхний регистр
System.out.printf("%C", "e");
public class Demo { public static void main(String[] args) { System.out.printf("%C", 'e'); } }
Вы можете запустить свой код онлайн здесь
Форматирование чисел
System.out.printf("%d", 10005);
public class Demo { public static void main(String[] args) { System.out.printf("%d", 10005); } }
Вы можете запустить свой код онлайн здесь
В этом примере мы будем использовать языковой стандарт для разделителя тысяч
System.out.printf(Locale.US, "%,d %n", 100500);
import java.util.Locale; public class Demo { public static void main(String[] args) { System.out.printf(Locale.US, "%,d %n", 100500); } }
Вы можете запустить свой код онлайн здесь
System.out.printf("%f", 55.1458);
public class Demo { public static void main(String[] args) { System.out.printf("%f", 55.1458); } }
Вы можете запустить свой код онлайн здесь
В этом примере мы уменьшим длину десятичной части
System.out.printf("%.3f", 55.1458);
public class Demo { public static void main(String[] args) { System.out.printf("%.3f", 55.1458); } }
Вы можете запустить свой код онлайн здесь
Форматирование даты и времени
System.out.printf("%tT", date);
import java.util.Date; public class Demo { public static void main(String[] args) { Date date = new Date(); System.out.printf("%tT", date); } }
Вы можете запустить свой код онлайн здесь
В этом примере мы будем печатать часы, минуты и секунды отдельно
System.out.printf("hours %tH: minutes %tM: seconds %tS%n", date, date, date);
import java.util.Date; public class Demo { public static void main(String[] args) { Date date = new Date(); System.out.printf("hours %tH: minutes %tM: seconds %tS%n", date, date, date); } }
Вы можете запустить свой код онлайн здесь
В этом примере мы напечатаем полный день недели, используя полное название месяца, используя полосу год в четырех цифрах, используя Y.
System.out.printf("%1$tA, %1$tB %1$tY %n", date);
import java.util.Date; public class Demo { public static void main(String[] args) { Date date = new Date(); System.out.printf("%1$tA, %1$tB %1$tY", date); } }
Вы можете запустить свой код онлайн здесь
Логическое форматирование
System.out.printf("%b", 5<4);
public class Demo { public static void main(String[] args) { System.out.printf("%b", 5<4); } }
Вы можете запустить свой код онлайн здесь
В этом примере мы напечатаем вывод в верхнем регистре
System.out.printf("%B", 5<4);
public class Demo { public static void main(String[] args) { System.out.printf("%B", 5<4); } }
Вы можете запустить свой код онлайн здесь
Новая линия
System.out.printf("This%nline%nwill%nbreak");
public class Demo { public static void main(String[] args) { System.out.printf("This%nline%nwill%nbreak"); } }
Вы можете запустить свой код онлайн здесь
Вот проблема, в которой я нашел printf() очень полезным –
В каждой строке вывода должно быть два столбца: Первый столбец содержит строку и выравнивается по левому краю ровно на 15 символов. Второй столбец содержит целое число, выраженное ровно в 3 цифрах; если исходный ввод содержит менее трех цифр, вы должны дополнить начальные цифры вашего вывода нулями.
Решение с использованием printf()
import java.util.Scanner; public class Demo { public static void main(String[] args) { Scanner sc=new Scanner(System.in); System.out.println(); for(int i=0;i<3;i++) { String s1=sc.next(); int x=sc.nextInt(); System.out.printf("%-15s%03d%n", s1, x); // } System.out.println(); } }
Вы можете запустить свой код онлайн здесь
Решение без использования printf()
import java.util.Scanner; public class Demo { public static void main(String[] args) { Scanner sc=new Scanner(System.in); System.out.println(); for(int i=0;i<3;i++){ String s1=sc.next(); int x = sc.nextInt(); String newX = ""; if(x>=0 && x<=9) { newX = "00"; } else if(x>=10 && x<=99) { newX = "0"; } else { newX = ""; } int ct = s1.length(); int space = 15 - ct; String bspc = ""; for(int j=0; j<=space-1; j++) { bspc = bspc +" "; } System.out.println(s1 + bspc + newX+x); } System.out.println(); } }
Вы можете запустить свой код онлайн здесь
Вот еще несколько вариантов форматирования
Ресурсы-
Ладно, пока этого достаточно, следуйте за мной в этом путешествии, чтобы узнать больше о Java.
Спасибо вам за чтение.
Пожалуйста, поделитесь своими мыслями по этому поводу и поправьте меня, если я ошибаюсь.
Надеюсь, вам понравилось и вы нашли это полезным.
Обложка: – Раджат Гур
Свяжитесь со мной в Twitter или LinkedIn
Мой личный блог blog.ritvikdubey.com
Оригинал: “https://dev.to/ritvikdubey27/printf-in-java-4265”