¿Qué es printf en Java?

| Última modificación: 2 de octubre de 2024 | Tiempo de Lectura: 3 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

El método printf en Java es una de las opciones que no sabías que necesitabas, pero que pueden simplificar tu vida enormemente cuando la conoces. Si estás iniciando en el mundo tech del desarrollo de software con Java, queremos que desde el principio sepas sobre qué es printf en Java y cuáles son los usos que se le pueden dar a este método. ¡Vamos a ello!

printf en Java

¿Qué es printf en Java?

Printf en Java, junto a format, es una pequeña pero astuta incorporación que hizo Java a partir de su versión 5, la cual cual permite aplicar formatos específicos a una salida de datos en pantalla. Tanto printf como format cumplen la misma función, que es emular la impresión con formato printf() que ya tenía el lenguaje C.

Sabemos que puede ser un poco complejo al principio, pero, básicamente, el printf de Java es utilizado para imprimir texto con formato. La f en printf da el significado de formateado y nos permite especificar cómo deben mostrarse los datos, como la cantidad de decimales para un número o la alineación del texto. Es igual a cuando le das formato a un texto en cualquier procesador de texto, como Word.

La sintaxis general de printf es:

System.out.printf(String de formato, Object... datos);

En este caso:

  • String de formato: es una cadena de caracteres que contiene texto fijo y especificadores de formato.
  • datos: son los valores que se insertarán en la cadena de formato.

Especificadores de formato

Dentro de printf en Java, los especificadores de formato nos indican cómo deben ser formateados los diferentes tipos de datos en Java. La sintaxis va del siguiente modo:

%[posición_dato$][indicador_de_formato][ancho][.precision]carácter_de_conversión

Ejemplos

Veamos algunos ejemplos de aplicación para entender cómo usar printf en Java.

Mostrar un número con decimales

Para mostrar el número 12.3698 de tipo double con dos decimales:

System.out.printf("%.2f %n", 12.3698);

Salida:

12.37

Mostrar un número entero con signo

Para mostrar el número 10 con signo:

int x = 10;
System.out.printf("%+d %n", x);

Salida:

+10

Mostrar varias variables

Para mostrar varias variables en una sola línea:

double n = 1.25036;
int x = 10;
System.out.printf("n = %.2f x = %d %n", n, x);

Salida:

n = 1.25 x = 10

Formatear con ancho de campo

Mostrar el número 1.25036 en un ancho de campo de 10 caracteres:

double n = 1.25036;
System.out.printf("%+10.2f %n", n);

Salida:

+1.25

Rellenar con ceros

Para rellenar con ceros en lugar de espacios en blanco:

System.out.printf("%+010.2f %n", n);

Salida:

+000001.25

Alinear texto

Mostrar la cadena “Total:” con un ancho de 10 caracteres alineada a la izquierda:

System.out.printf("%-10s", "Total:");

Salida:

Total:

Mostrar la cadena “Total:” con un ancho de 10 caracteres alineada a la derecha:

System.out.printf("%10s", "Total:");

Salida:

Total:

Ejemplo completo

Veamos un ejemplo que incluya diversos usos de printf en Java, para constatar la diferencia entre cada uno:

public static void main(String[] args) {
double q = 1.0 / 3.0;
System.out.printf("1.0/3.0 = %5.3f %n", q);
System.out.printf("1.0/3.0 = %7.5f %n", q);
q = 1.0 / 2.0;
System.out.printf("1.0/2.0 = %09.3f %n", q);
q = 1000.0 / 3.0;
System.out.printf("1000/3.0 = %7.1e %n", q);
q = 3.0 / 4567.0;
System.out.printf("3.0/4567.0 = %7.3e %n", q);
System.out.printf("pi = %5.3f, e = %10.4f %n", Math.PI, Math.E);
double r = 1.1;
System.out.printf("C = 2 * %1$5.5f * %2$4.1f, A = %2$4.1f * %2$4.1f * %1$5.5f %n", Math.PI, r);
}

Salida:

1.0/3.0 = 0.333
1.0/3.0 = 0.33333
1.0/2.0 = 00000.500
1000/3.0 = 3.3e+02
3.0/4567.0 = 6.569e-04
pi = 3.142, e = 2.7183
C = 2 * 3.14159 * 1.1, A = 1.1 * 1.1 * 3.14159

Como pudiste observar, printf en Java es un gran método y bastante importante para dar formato a diferentes salidas de datos. En caso de que necesites mostrar números con un determinado número de caracteres, o que requieras alinear texto o formatear múltiples variables en una sola línea, deberías usar el printf, que le da ese toque fantástico a tu código.

Si te interesa seguir aprendiendo más sobre Java, te invitamos a unirte al Bootcamp de Java que Keepcoding ha preparado para ti, en donde con la ayuda de los mejores profesionales del sector, seguirás escalando hacia la cima del éxito en tu carrera profesional. ¡Anímate e inscríbete ahora!

Ramón Maldonado

Full Stack Developer y Responsable de Formación base en KeepCoding.

Posts más leídos

¡CONVOCATORIA ABIERTA!

Java y Spring Boot

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado