Formateo con Printf

JavaBeginner
Practicar Ahora

Introducción

En este laboratorio, utilizarás el método printf() en Java. El método printf() se utiliza para formatear e imprimir una cadena en la consola. La sintaxis general del método es:

Configuración del directorio del proyecto

Abre la terminal y crea un directorio de proyecto utilizando el siguiente comando:

mkdir project

Crea un nuevo archivo dentro del directorio del proyecto utilizando el siguiente comando:

touch project_formatting_printf.java

Formateo de enteros

Para formatear enteros utilizando printf() se utiliza el especificador de formato %d. A continuación se muestra un ejemplo:

public static void main(String[] args) {
  int num = 10;
  System.out.printf("The number is: %d%n", num);
}

En el código anterior, %d es el especificador de formato para enteros y %n es el carácter de nueva línea.

Compila y ejecuta el código utilizando los siguientes comandos:

javac project_formatting_printf.java
java project_formatting_printf

Verás la siguiente salida:

The number is: 10

Formateo de números decimales

Para formatear números decimales, utiliza el especificador de formato %f. Por ejemplo:

public static void main(String[] args) {
  double num = 3.14159265359;
  System.out.printf("The number is: %.2f%n", num);
}

En el código anterior, %.2f es el especificador de formato para números decimales con 2 lugares decimales.

Compila y ejecuta el código utilizando los siguientes comandos:

javac project_formatting_printf.java
java project_formatting_printf

Verás la siguiente salida:

The number is: 3.14

Formateo de fechas

Para formatear fechas, utilizamos t como carácter de conversión y proporcionamos un especificador de formato. Por ejemplo:

public static void main(String[] args) {
  Date date = new Date();
  System.out.printf("Today is %tA, %<tB %<te, %<tY.%n", date);
}

En el código anterior, %tA es el especificador de formato para el nombre completo del día y %<tB %<te, %<tY es el especificador de formato para el mes, día y año. %n es el carácter de nueva línea.

Compila y ejecuta el código utilizando los siguientes comandos:

javac project_formatting_printf.java
java project_formatting_printf

Verás la siguiente salida:

Today is Friday, October 15, 2021.

Uso de flags

Los indicadores (flags) se utilizan para agregar características especiales a la salida. Por ejemplo:

public static void main(String[] args) {
  double num = 12345.6789;
  System.out.printf("The number is: %,.2f%n", num);
}

En el código anterior, , es el separador de miles y %.2f es el especificador de formato para números decimales con 2 lugares decimales.

Compila y ejecuta el código utilizando los siguientes comandos:

javac project_formatting_printf.java
java project_formatting_printf

Verás la siguiente salida:

The number is: 12,345.68

Uso de precisión

La precisión se utiliza para limitar el número de lugares decimales. Por ejemplo:

public static void main(String[] args) {
  double num = 1234.56789;
  System.out.printf("The number is: %.2f%n", num);
}

En el código anterior, %.2f es el especificador de formato para números decimales con 2 lugares decimales.

Compila y ejecuta el código utilizando los siguientes comandos:

javac project_formatting_printf.java
java project_formatting_printf

Verás la siguiente salida:

The number is: 1234.57

Uso de mayúsculas

Para imprimir la salida en mayúsculas, utilizamos la versión en mayúsculas del carácter de conversión. Por ejemplo:

public static void main(String[] args) {
  String name = "John Doe";
  System.out.printf("Name: %S%n", name);
}

En el código anterior, %S es el especificador de formato para cadenas en mayúsculas.

Compila y ejecuta el código utilizando los siguientes comandos:

javac project_formatting_printf.java
java project_formatting_printf

Verás la siguiente salida:

Name: JOHN DOE

Uso de relleno (padding)

Podemos utilizar relleno (padding) para agregar espacios o ceros a la salida. Por ejemplo:

public static void main(String[] args) {
  int num = 123;
  System.out.printf("The number is: %010d%n", num);
}

En el código anterior, %010d es el especificador de formato para enteros de 10 dígitos y el carácter de relleno es 0.

Compila y ejecuta el código utilizando los siguientes comandos:

javac project_formatting_printf.java
java project_formatting_printf

Verás la siguiente salida:

The number is: 0000000123

Combinación de especificadores de formato

Podemos combinar múltiples especificadores de formato para dar formato a la salida como deseemos. Por ejemplo:

public static void main(String[] args) {
  double num = 1234.56789;
  System.out.printf("The number is: %,010.2f%n", num);
}

En el código anterior, %010.2f es el especificador de formato para números decimales con 2 lugares decimales, 10 dígitos y el carácter de relleno es 0. , es el separador de miles.

Compila y ejecuta el código utilizando los siguientes comandos:

javac project_formatting_printf.java
java project_formatting_printf

Verás la siguiente salida:

The number is: 01,234.57

Resumen

¡Felicidades! Has completado el laboratorio (lab) "Formatting With Printf". Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.