logo

Salida formateada en Java usando printf()

A veces, en programación, es esencial imprimir la salida en un formato específico determinado. La mayoría de los usuarios están familiarizados con la función printf en C. Analicemos cómo podemos formatear la salida con printf() en Java en este artículo.

Formatear usando Java Printf()

printf() utiliza especificadores de formato para formatear. Hay ciertos tipos de datos que se mencionan a continuación:

  • Para formatear números
  • Formatear números decimales
  • Para formato booleano
  • Para formatear cadenas
  • Para formatear caracteres
  • Para formatear fecha y hora

i). Para formatear números

El número en sí incluye entero, largo, etc. El especificador de formato utilizado es %d.



reemplazar de cadena en java

A continuación se muestra la implementación del método anterior:

Java




// Java Program to demonstrate> // Use of printf to> // Formatting Integer> import> java.io.*;> > // Driver Class> class> GFG {> >// main function> >public> static> void> main (String[] args) {> >int> a=>10000>;> > >//System.out.printf('%.d%n',a);> >System.out.printf(>'%,d%n'>,a);> >}> }>

>

>

Producción

10,000>

ii). Para formato de números decimales

El formato de números decimales se puede realizar usando print() y el especificador de formato %f.

A continuación se muestra la implementación del método anterior:

Java




// Java Programs to demonstrate> // Use of Printf() for decimal> // Number Formatting> import> java.io.*;> > // Driver Class> class> GFG {> >// main function> >public> static> void> main(String[] args)> >{> >// declaring double> >double> a =>3.14159265359>;> > >// Printing Double Value with> >// different Formatting> >System.out.printf(>'%f '>, a);> >System.out.printf(>'%5.3f '>, a);> >System.out.printf(>'%5.2f '>, a);> >}> }>

>

>

Producción

3.141593 3.142 3.14>

iii). Para formato booleano

El formato booleano se puede realizar usando printf y ('%b' o '%B') dependiendo del resultado necesario.

A continuación se muestra la implementación del método anterior:

Java




// Java Programs to demonstrate> // Use of Printf() for decimal> // Boolean Formatting> import> java.io.*;> > // Driver Function> class> GFG {> >// main function> >public> static> void> main(String[] args)> >{> >int> a =>10>;> >Boolean b =>true>, c =>false>;> >Integer d =>null>;> > >// Fromatting Done using printf> >System.out.printf(>'%b '>, a);> >System.out.printf(>'%B '>, b);> >System.out.printf(>'%b '>, c);> >System.out.printf(>'%B '>, d);> >}> }>

>

comando en el nodo js
>

Producción

true TRUE false FALSE>

iv). Para formatear caracteres

El formato de caracteres es fácil de entender ya que necesita printf() y el especificador de formato de caracteres utilizado es '%c' y '%C'.

A continuación se muestra la implementación del método anterior:

Java




// Java Program to Formatt> //> import> java.io.*;> > // Driver Class> class> GFG {> >// main function> >public> static> void> main(String[] args)> >{> >char> c =>'g'>;> > >// Formatting Done> >System.out.printf(>'%c '>, c);> > >// Converting into Uppercase> >System.out.printf(>'%C '>, c);> >}> }>

>

>

Producción

g G>

v). Para formatear cadenas

El formato de cadenas requiere el conocimiento de las cadenas y del especificador de formato utilizado '%s' y '%S'.

A continuación se muestra la implementación del método anterior:

Java




// Java Program to implement> // Printf() for String Formatting> import> java.io.*;> > // Driver Class> class> GFG {> >// main function> >public> static> void> main(String[] args)> >{> >String str =>'geeksforgeeks'>;> > >// Formatting from lowercase to> >// Uppercase> >System.out.printf(>'%s '>, str);> >System.out.printf(>'%S '>, str);> > >str =>'GFG'>;> >// Vice-versa not possible> >System.out.printf(>'%S '>, str);> >System.out.printf(>'%s '>, str);> >}> }>

>

>

pruebas de software
Producción

geeksforgeeks GEEKSFORGEEKS GFG GFG>

vi). Para formatear fecha y hora

Formatear la fecha y la hora no es tan fácil como el tipo de datos utilizado anteriormente. Utiliza más que un simple conocimiento del especificador de formato, como se puede observar en el ejemplo que se menciona a continuación.

A continuación se muestra la implementación del método anterior:

Java




// Java Program to demonstrate use of> // printf() for formatting Date-time> import> java.io.*;> import> java.util.*;> > // Driver Class> class> GFG {> >// main function> >public> static> void> main(String[] args)> >{> >Date time =>new> Date();> > >System.out.printf(>'Current Time: %tT '>, time);> > >// Another Method with all of them Hour> >// minutes and seconds seperated> >System.out.printf(>'Hours: %tH Minutes: %tM Seconds: %tS '>,> >time,time, time);> > >// Another Method to print the time> >// Followed by am/pm , time in milliseconds> >// nanoseconds and time-zone offset> >System.out.printf(>'%1$tH:%1$tM:%1$tS %1$tp %1$tL %1$tN %1$tz %n'>,> >time);> >}> }>

>

>

Producción

actor zeenat aman
Current Time: 11:32:36 Hours: 11 Minutes: 32 Seconds: 36 11:32:36 am 198 198000000 +0000>

Nota: System.out.format() es equivalente a printf() y también se puede utilizar.

Otros métodos para formatear

1. Formatear usando la clase DecimalFormat

DecimalFormat se utiliza para formatear números decimales.

A continuación se muestra la implementación del método anterior:

Java




// Java program to demonstrate working of DecimalFormat> import> java.text.DecimalFormat;> > // Driver Class> class> JavaFormatter2 {> >// main function> >public> static> void> main(String args[])> >{> >double> num =>123.4567>;> > >// prints only numeric part of a floating number> >DecimalFormat ft =>new> DecimalFormat(>'####'>);> >System.out.println(>'Without fraction part: num = '> >+ ft.format(num));> > >// this will print it upto 2 decimal places> >ft =>new> DecimalFormat(>'#.##'>);> >System.out.println(>'Formatted to Give precision: num = '> >+ ft.format(num));> > >// automatically appends zero to the rightmost part> >// of decimal instead of #,we use digit 0> >ft =>new> DecimalFormat(>'#.000000'>);> >System.out.println(>'appended zeroes to right: num = '> >+ ft.format(num));> > >// automatically appends zero to the leftmost of> >// decimal number instead of #,we use digit 0> >ft =>new> DecimalFormat(>'00000.00'>);> >System.out.println(>'formatting Numeric part : num = '> >+ ft.format(num));> > >// formatting money in dollars> >double> income =>23456.789>;> >ft =>new> DecimalFormat(>'$###,###.##'>);> >System.out.println(>'your Formatted Dream Income : '> >+ ft.format(income));> >}> }>

>

>

Producción

Without fraction part: num = 123 Formatted to Give precision: num = 123.46 appended zeroes to right: num = 123.456700 formatting Numeric part : num = 00123.46 your Formatted Dream Income : ,456.79>

2. Formatear fechas y analizar usando la clase SimpleDateFormat

Esta clase está presente en el paquete java.text.

A continuación se muestra la implementación del método anterior:

Java




// Java program to demonstrate working of SimpleDateFormat> import> java.text.ParseException;> import> java.text.SimpleDateFormat;> import> java.util.Date;> > // Driver Class> class> Formatter3 {> >// main function> >public> static> void> main(String args[])> >throws> ParseException> >{> >// Formatting as per given pattern in the argument> >SimpleDateFormat ft> >=>new> SimpleDateFormat(>'dd-MM-yyyy'>);> > >String str = ft.format(>new> Date());> >System.out.println(>'Formatted Date : '> + str);> > >// parsing a given String> >str =>'02/18/1995'>;> >ft =>new> SimpleDateFormat(>'MM/dd/yyyy'>);> >Date date = ft.parse(str);> > >// this will print the date as per parsed string> >System.out.println(>'Parsed Date : '> + date);> >}> }>

>

>

Producción

Formatted Date : 24-01-2022 Parsed Date : Sat Feb 18 00:00:00 UTC 1995>