W3docs

Salida en Java: print, println y printf

Imprime texto y valores en la consola con System.out.print, println y printf, y comprende la diferencia entre ellos.

La forma estándar de imprimir salida desde un programa Java es a través de System.out, el flujo de salida estándar disponible para todos los programas. Expone tres métodos que usarás constantemente: print, println y printf. Solo difieren en cómo manejan los saltos de línea y el formato.

System.out.println

println ("print line") escribe su argumento seguido de un salto de línea. Cada llamada pasa a la siguiente línea:

System.out.println("Line 1");
System.out.println("Line 2");
System.out.println("Line 3");

Salida:

Line 1
Line 2
Line 3

Este es el método que más usarás.

System.out.print

print es igual que println pero sin el salto de línea al final. Es útil cuando quieres varios valores en una misma línea:

System.out.print("Loading");
System.out.print(".");
System.out.print(".");
System.out.print(".");
System.out.println(" done");

Salida:

Loading... done

Imprimir valores, no solo cadenas

Tanto print como println aceptan cualquier tipo, no solo cadenas. El entorno de ejecución convierte números, booleanos, caracteres e incluso objetos en una cadena por ti:

System.out.println(42);
System.out.println(3.14);
System.out.println(true);
System.out.println('A');

Para objetos arbitrarios, el entorno de ejecución llama a su método toString() (que se verá más adelante en OOP).

Concatenación de cadenas con +

El operador + une cadenas — y si mezclas un número u otro valor, Java lo convierte automáticamente:

String name = "Ada";
int age = 36;
System.out.println("Hello, " + name + "! You are " + age + " years old.");

Salida:

Hello, Ada! You are 36 years old.

System.out.printf — salida con formato

printf ("print formatted") es el equivalente Java del printf de C. Pasas una cadena de formato con marcadores de posición y los valores a sustituir:

java— editable, runs on the server

Los marcadores de posición más comunes:

  • %s — string
  • %d — integer
  • %f — floating-point number
  • %.2f — float con 2 decimales
  • %5d — integer en un campo de 5 caracteres de ancho, relleno con espacios a la izquierda (alineado a la derecha)
  • %-5d — integer en un campo de 5 caracteres de ancho, relleno con espacios a la derecha (alineado a la izquierda)
  • %n — salto de línea específico de la plataforma (úsalo en lugar de \n en printf)
  • %% — un signo % literal

System.err — imprimir errores

Existe un flujo paralelo para la salida de errores: System.err. Admite los mismos métodos print, println y printf. Por convención, la salida normal va a System.out y los mensajes de error van a System.err:

System.out.println("Loaded 3 records.");
System.err.println("Warning: could not parse line 5.");

En una terminal ambos flujos aparecen juntos, pero las herramientas que redirigen la salida (> file.txt) pueden separarlos.

Errores comunes

  • Usar print cuando querías println. La salida termina en una sola línea sin separador.
  • Mezclar + y , en printf. Los marcadores de posición de la cadena de formato se rellenan con argumentos adicionales, no mediante concatenación. Usa printf("%s scored %d", name, score), no printf("%s scored", name + score).
  • Olvidar %n en printf. Sin él, la salida queda unida.

¿Qué sigue?

Java Comments muestra las tres sintaxis de comentarios, incluido Javadoc — la forma estándar de documentar código Java.

Práctica

Práctica
¿Qué método escribe su argumento SIN un salto de línea al final?
¿Qué método escribe su argumento SIN un salto de línea al final?
Was this page helpful?