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 softwareProducció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>