Formateo con Printf

JavaJavaBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

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:


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("Java")) -.-> java/BasicSyntaxGroup(["Basic Syntax"]) java(("Java")) -.-> java/StringManipulationGroup(["String Manipulation"]) java(("Java")) -.-> java/ObjectOrientedandAdvancedConceptsGroup(["Object-Oriented and Advanced Concepts"]) java(("Java")) -.-> java/FileandIOManagementGroup(["File and I/O Management"]) java(("Java")) -.-> java/SystemandDataProcessingGroup(["System and Data Processing"]) java/BasicSyntaxGroup -.-> java/output("Output") java/StringManipulationGroup -.-> java/strings("Strings") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/date("Date") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/format("Format") java/FileandIOManagementGroup -.-> java/files("Files") java/SystemandDataProcessingGroup -.-> java/string_methods("String Methods") subgraph Lab Skills java/output -.-> lab-117408{{"Formateo con Printf"}} java/strings -.-> lab-117408{{"Formateo con Printf"}} java/date -.-> lab-117408{{"Formateo con Printf"}} java/format -.-> lab-117408{{"Formateo con Printf"}} java/files -.-> lab-117408{{"Formateo con Printf"}} java/string_methods -.-> lab-117408{{"Formateo con Printf"}} end

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 indicadores (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.