A veces, en la programación Competitiva, es esencial imprimir la salida en un formato específico dado. La mayoría de los usuarios están familiarizados con la función printf en C. Analicemos cómo podemos formatear la salida en Java.
Hay diferentes formas en las que podemos formatear la salida en Java . Algunos de ellos se dan a continuación.
- Usando System.out.printf()
- Usando la clase DecimalFormat
- Usando la clase SimpleDateFormat (para formatear fechas)
1. Formatear la salida usando System.out.printf()
Este es el método más fácil de todos, ya que es similar a printf en C. Tenga en cuenta que System.out.print() y System.out.println() toman un solo argumento, pero printf() puede tomar múltiples argumentos.
Java
// Java program to demonstrate working of printf() class JavaFormatter1 { public static void main(String args[]) { int x = 100; System.out.printf( "Printing simple integer: x = %d\n", x); // this will print it upto 2 decimal places System.out.printf( "Formatted with precision: PI = %.2f\n", Math.PI); float n = 5.2f; // automatically appends zero to the rightmost part // of decimal System.out.printf( "Formatted to specific width: n = %.4f\n", n); n = 2324435.3f; // here number is formatted from right margin and // occupies a width of 20 characters System.out.printf( "Formatted to right margin: n = %20.4f\n", n); } }
Printing simple integer: x = 100 Formatted with precision: PI = 3.14 Formatted to specific width: n = 5.2000 Formatted to right margin: n = 2324435.2500
Nota: System.out.format() es equivalente a printf() y también se puede usar.
2. Formateo usando la clase DecimalFormat
DecimalFormat se utiliza para formatear números decimales.
Java
// Java program to demonstrate working of DecimalFormat import java.text.DecimalFormat; class JavaFormatter2 { 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)); } }
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 : $23,456.79
3. Formateo de fechas y análisis usando la clase SimpleDateFormat
Esta clase está presente en el paquete java.text.
Java
// Java program to demonstrate working of SimpleDateFormat import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; class Formatter3 { 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); } }
Formatted Date : 24-01-2022 Parsed Date : Sat Feb 18 00:00:00 UTC 1995
Este artículo es una contribución de Pankaj Kumar . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks. Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA