Рубрики
Без рубрики

Формат строки Java

Формат строки Java, java String.format(), java.util.Форматер, класс форматирования Java, пример формата строки java, двойной формат строки java, строка формата даты java, учебник по формату строки java, с плавающей точкой, число, длина, двойной, спецификаторы преобразования, ширина, точность, преобразование даты и времени.

Автор оригинала: Pankaj Kumar.

Формат строки Java позволяет нам расположить вещи определенным образом или в определенном порядке. Существует много способов форматирования строк, но это не так популярно, потому что большую часть времени нам нужны простые преобразования, которые можно выполнить с помощью объединения строк . Сегодня мы рассмотрим примеры строкового формата java.

Формат строки Java

Концепция форматированной строки, начатая с C, Java также предоставляет функцию форматированной печати с использованием класса, известного как java.util.Форматер . На самом деле концепция форматированных строк Java вдохновлена концепцией C sprintf .

Давайте посмотрим, как выглядит простой метод строкового формата.

String formattedString = String.format("My name is %s","John");

Над одним кодом строки будет выводиться как:

My name is John

То же самое может быть достигнуто как "Меня зовут "+"Джон" и здесь нам даже не нужно запоминать все разные спецификаторы. Однако форматирование строк является лучшим подходом по следующим причинам:

  • Объединение строк – дорогостоящее дело.
  • Если форматированная строка длинная, то объединение строк вызывает проблемы с удобочитаемостью.
  • При конкатенации строк мы должны выполнять преобразование между различными объектами в строки.
  • Преимущество форматирования строк хорошо видно там, где строка формата считывается из файла свойств.

Метод String.format() возвращает отформатированную строку на основе строки формата и аргументов, предоставленных методу.

В приведенном выше примере “Меня зовут %s” – это строка формата. Он содержит спецификатор формата “%s”, который указывает, как должен обрабатываться аргумент и где он будет помещен в вывод.

Метод format также использует языковой стандарт для форматирования строки. Если языковой стандарт не указан в методе String.format () , он использует языковой стандарт по умолчанию, вызывая метод Locale.getDefault () .

Пример Строкового формата Java

Существуют ситуации и сценарии, когда мы хотели бы, чтобы на консоли отображалась отформатированная строка; ее использование может варьироваться от отладки до более читаемого кода. Чтобы получить отформатированные строки на консоли, нам нужно использовать следующие методы.

  1. System.out.printf()
  2. System.err.printf()

методы printf() и format() ведут себя одинаково. Примеры вышеупомянутых методов приведены ниже.

  1. System.out.printf() : Чаще всего используется для печати на консоли в целях отладки или для вывода вывода на экран.
  2. Выход:

  3. System.err.printf(): В основном используется для печати ошибки на консоли. Также для предоставления пользовательских сообщений об ошибках на консоли.
  4. Выход:

Форматирование строк Java с помощью StringBuffer и StringBuilder

Мы также можем использовать форматирование с помощью StringBuffer и StringBuilder.

StringBuilder sb = new StringBuilder();
Formatter formatter = new Formatter(sb);
Formatter.format("value is %f",32.33434); 
System.out.print(sb.toString());

Выход:

value is 32.334340

Спецификаторы Преобразования Строкового Формата Java

Спецификаторы преобразования строкового формата Java – это те, которые играют важную роль в форматировании строк. Поскольку спецификаторы-это те, которые сообщают, как должно быть обработано преобразование и где добавлять аргументы в текст.

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

Шестигранник 0x1.02acba732df5p5 Плавающая точка Результатом является шестнадцатеричное представление числа с плавающей запятой Строка.формат(“Hex – это %a”,32.33434); %а,%А
значение истинно Все типы Если аргумент arg равен нулю, то результат будет “ложным”. Если arg является логическим или логическим, то результатом является строка, возвращаемая String.valueOf(arg). В противном случае результат будет “истинным”. Строка.формат(“значение равно %b”,”a”.равно(“a”)); %b, %B
Юникод-это Характер В результате получается символ Юникода Строка.формат(“Юникод-это %C”,”T”); %c, %C
Число равно 6 байт, Байт, короткий, Короткий, int, Целое число, длинный, Длинный и BigInteger Результаты в виде десятичного целого числа Строка.Формат(“Число равно %d”, 2*3); %d
Номер 6.000000 e+00 Плавающая точка Результаты в десятичном числе в компьютерной научной системе счисления Формат строки(“Число равно %e”, 2*3,0); %е, %е
Номер 6.000000 Плавающая точка Результаты в десятичном числе Формат строки(“Число равно %f”, 2*3,0); %f
Номер 6.000000 Плавающая точка Формат основан на компьютерной научной нотации или десятичном формате, в зависимости от точности и значения после округления. Формат строки(“Число равно %g”, 2*3,0); %г, %г
Шестигранник равен 12202 Любого типа Результаты в шестнадцатеричной строке на основе вывода метода hashCode() Строка.формат(“Hex – это %h”,”Jay”); %ч, %Ч
Меня зовут Джон. Я знаю Java Линейный сепаратор Результаты в разделителе строк для конкретной платформы Строка.формат(“Меня зовут %s. %n Я знаю Java “,”Джон”); %n
Число-11 байт, Байт, короткий, Короткий, int, Целое число, длинный, Длинный и BigInteger Приводит к восьмеричному целому числу Строка.Формат(“Число равно %o”, 3*3); %o
Меня зовут Джон Любого типа В результате получается строка Строка.формат(“Меня зовут %s”,”Джон”); %s
Местное время: 17:52:40 Дата и время Это префиксы для символов преобразования даты и времени Строка.формат(“Местное время: %tT”, Calendar.getInstance()); %т, %Т
Число-17 байт, Байт, короткий, Короткий, int, Целое число, длинный, Длинный и BigInteger В результате получается шестнадцатеричное целое число Строка.Формат(“Число равно %x”, 23); %x, %X

Преобразования, обозначенные прописными буквами (т. Е. “B”, “H”, “S”, “C”, “X”, “E”, “G”, ” A ” и “T”), такие же, как и для соответствующих символов преобразования в нижнем регистре, разница только в том, что результат преобразуется в верхний регистр в соответствии с правилами локали.

Форматирование строк Java Преобразование даты и времени

Следующие символы преобразования даты и времени используются в качестве суффикса наряду с ” t ” и ” T ” для преобразования даты и времени.

Пример : %tA приведет к полному названию дня недели.

Полное название дня недели, например “Воскресенье”, “Понедельник” A
Краткое название дня недели, например “Пн”, “Вт” a
Полное название месяца, например “Январь”, “Февраль”. B
Краткое название месяца, например “Январь”, “февраль”. b
Последние две цифры года, начиная с 00 до 99 C
Дата и время отформатированы как “%ta %tb %td %tT %tZ %tY”, например “Пн 01 января 16:17:00 CST 2018” c
Дата отформатирована как “%tm/%td/%ty”, например “31.12.17” D
День представлен двумя цифрами с начальными нулями, где это необходимо, начиная с 01 по 31. d
День месяца представлен двумя цифрами, например 1 – 31. e
Дата отформатирована в формате ISO 8601 как “%tY-%tm-%td”, например “2017-12-31” F
Часовое представление в формате 24 часов с начальным нулем по мере необходимости, т. е. с 00 до 23. H
Краткое название месяца, например “Январь”, “февраль”. h
Час представлен в 12-часовом формате, отформатированном в виде двух цифр с начальным нулем по мере необходимости, т. е. 01 – 12. I
День года из 366 дней (с учетом високосного года), представленный ведущими 0, т. е. от “001” до “366”. j
Часовое представление в 24 – часовом формате без ведущего 0, начиная с “0” до “23”. k
Часовое представление в 12-часовом формате без ведущего 0, например от “1” до “12”. l
Миллисекунда в пределах секунды отформатирована в виде трех цифр с начальными нулями, начиная с 000 до 999. L
Минута в течение часа отформатирована с нуля, начиная с “00” до “59”. M
Месяц отформатирован с начальным нулем, например, от “01” до “12”. m
Наносекунда в пределах секунды, представленная 9 цифрами и ведущими 0, такими как “000000000” до “999999999”. N
Специфичный для локали спецификатор утра или дня, такой как маркер “am” или “pm”. p
Миллисекунды с начала эпохи 1 января 1970 года 00:00:00 UTC. Q
Время, представленное в 24-часовом формате, т. е. “%tH:%tM”, например “20:00” R
Время представлено в 12-часовом формате,т. е. “%tI:%tM:%tS %Tp”. r
Секунды в течение минуты представлены 2 цифрами, например от “00” до “60”. “60” требуется для поддержки високосных секунд. S
Секунды с начала эпохи 1 января 1970 года 00:00:00 UTC. s
Время представлено в формате 24 часов вместе с секундами как “%tH:%tM:%tS” T
Год, представленный четырьмя цифрами, начиная с”0000″ до “9999” Y
Год, представленный двумя цифрами, начиная с “00” до “99” y
Представление часового пояса в строке типа “IST”, “CST” и т.д. Z
Числовое смещение часового пояса на основе RFC 822, например “-0530” z

Ширина Строкового формата Java

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

// Width for Integer
String s = String.format("{%10d}", 2017);
System.out.print(s);

// Width for String
String s1 = String.format("{%20s}", "Hello Format");
System.out.print(s1);

Выход:

{      2017}
{        Hello Format}

Точность Строкового формата Java

Точность-это максимальное количество символов, которые должны быть записаны в выходные данные для целого числа и строки.

Преобразования с плавающей запятой “a”, “A”, “e”, ” E ” и ” f ” имеют точность в виде числа цифр после запятой. Если преобразование ” g ” или “G”, то точность-это общее количество цифр в результирующей величине после округления.

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

String s = String.format("{%.8s}", "Hello Format");

System.out.print(s);

Выход:

{Hello Fo}

Индекс Аргумента Строкового формата Java

Индекс аргумента представляет собой десятичное целое число, начинающееся после знака “%” и заканчивающееся знаком”$”. Положение аргумента в списке аргументов определяется на основе значения целого числа.

String s = String.format("{%3$s %2$s %1$s}", "a","b","c");
System.out.print(s);

Выход:

{c b a}

Различные Примеры Форматирования Строк

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

  1. Выравнивание текста по левому краю.
  2. Выход:

  3. Выравнивание текста по правому краю.
  4. Выход:

  5. Представление числового формата, специфичного для конкретной локали.
  6. Выход:

  7. Заполнение с нулем.
  8. Выход:

Это все для примеров строкового формата Java, для получения дополнительной информации о строковом формате java, пожалуйста, посетите Formatter API Doc .