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

printf() в Java

Привет, Люди 👋 Я надеюсь, что у вас все хорошо. Да, значит, вы прочитали название статьи, printf() в… С тегами java, новички, обсуждение, javascript.

Привет, Люди 👋 Я надеюсь, что у вас все хорошо. Да, значит, вы прочитали название статьи, 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”