UD2 – printf Programación - PROG
1. printf
En este apartado vamos a resumir la sintaxis y comportamiento de printf para formatear la salida
de nuestros programas Java.
1.1 Sintaxis
Podemos usar uno de estos métodos PrintStream para formatear la salida:
[Link](formato, argumentos);
Especificamos las reglas de formato utilizando el parámetro formato y las reglas comienzan con el
carácter % .
Veamos un ejemplo rápido antes de profundizar en los detalles de las distintas reglas de formato:
[Link]("Hola %s!%n", "Mundo");
Esto produce la salida:
Como se muestra en la salida, la cadena de formato contiene:
▪ Texto sin formato: Hola
▪ Regla de formato %s! Cadena de texto con una admiración: Mundo!
▪ Regla de formato %n salto de línea
1.2 Reglas de formato
Dentro de la especificación de formato se incluyen indicadores, ancho, precisión y carácter de
conversión, de la siguiente forma:
%[indicadores][ancho][.precisión]conversión
Teniendo en cuenta que todo lo que aparece entre [ ] significa que es opcional.
1
Cristina Puga Fernández
UD2 – printf Programación - PROG
Qué significan?
1. Indicadores:
ndicador Significado
Alineación a la izquierda
-
Los números negativos se muestran entre paréntesis
(
Muestra el separador decimal o los miles en números enteros
,
Muestra el signo + en números positivos
+
Rellena con ceros
0
2. Ancho: Especifica el número mínimo de caracteres escritos en la salida. Indica el tamaño
mínimo, medido en número de caracteres, que debe ocupar el dato en pantalla.
3. .precisión: Indica el número de dígitos de precisión al generar valores de punto flotante. Indica
el número de decimales que serán representados. Solo aplicable a datos de tipo float o
double
1.2.1 conversión
El carácter conversión es obligatorio y determina cómo se va a formatear el argumento.
Carácter Tipo de dato
conversor
Formatea cadenas de texto
s
Formatea cadenas de texto visualizándolo en mayúsculas
S
Formatea tipo carácter
c
Formatea tipo carácter visualizándolo en mayúsculas
C
Formatea números enteros en base decimal
d
Formatea números de punto flotante
f
Formatea los valores fecha/hora
t
Salto de línea
n
2
Cristina Puga Fernández
UD2 – printf Programación - PROG
Devuelve false si el argumento es null.
Devuelve true/false si el argumento es boolean.
b
Devuelve true en cualquier otro caso
Actúa de igual forma que con b pero el resultado lo mostrará
B en mayúsculas (TRUE/FALSE)
Muestra los números en notación científica
e
Número entero en base hexadecimal
x, X
3
Cristina Puga Fernández
UD2 – printf Programación - PROG
2. Ejemplos tipo String
Código Java %s - %S Salida
'Programación'
[Link]("'%s'%n", "Programación");
'PROGRAMACIÓN'
[Link]("'%S'%n", "Programación");
'bbbProgramación'
[Link]("'%15s'%n", "Programación");
Siendo b un espacio en blanco
'Programación:bb'
[Link]("'%-15s'%n", "Programación:");
3. Ejemplos tipo boolean
Código Java %b - %B Salida
false
[Link]("%b", null);
FALSE
[Link]("%B", false);
TRUE
[Link]("%B", 5.3);
true
[Link]("%b", "Hola Mundo!!");
4. Ejemplos tipo entero: byte , short , int , long
Código Java %d Salida
Entero long: 10000
[Link]("Entero long: %d%n", 10000L);
10.000
[Link]("%,d %n", 10000);
4
Cristina Puga Fernández
UD2 – printf Programación - PROG
5. Ejemplos tipo coma flotante: float, double
Código Java %f Salida
5,147300
[Link]("%f", 5.1473);
'bbbbbb5,15'
[Link]("'%10.2f'", 5.1473);
Siendo b un espacio en blanco
5,15e+00
[Link]("%5.2e", 5.1473);
12,37
[Link]("%.2f %n", 12.3698);
double n = 1.25036; 1,250
[Link]("%.3f %n", n);
double n = 1.25036; +1.250
[Link]("%+.3f %n", n);
double n = 1.25036;
int x = 10; n = 1,25 x = 10
[Link]("n = %.2f x = %d %n", n, x);
[Link]("%+010.2f %n", n); +000001.25
Completa el número con 0 por
la izquierda hasta 10 caracteres
[Link] ("1.0/3.0 = %7.5f %n", 1.0/3.0); 1.0/3.0 = 0,33333
[Link] ("1000/3.0 = %7.1e h%n", 1000.0/3.0); 1000/3.0 = 3,3e+02 h
5
Cristina Puga Fernández