anteriormente vio el uso de los métodos print
y println
para imprimir cadenas a la salida estándar (System.out
). Dado que todos los números se pueden convertir en cadenas (como verá más adelante en esta lección), puede usar estos métodos para imprimir una mezcla arbitraria de cadenas y números., El lenguaje de programación Java tiene otros métodos, sin embargo, que le permiten ejercer mucho más control sobre su salida de impresión cuando se incluyen números.
los métodos printf y format
el paquete java.io
incluye una clase PrintStream
que tiene dos métodos de formato que puede usar para reemplazar print
y println
. Estos métodos, format
y printf
, son equivalentes entre sí., El familiar System.out
que usted ha estado usando pasa a ser un PrintStream
object, por lo que puede invocar PrintStream
métodos System.out
. Por lo tanto, puede usar format
o printf
en cualquier parte del código donde has estado utilizando print
o println
., Por ejemplo,
System.out.format(.....);
La sintaxis de estas dos java.io.PrintStream
métodos es el mismo:
public PrintStream format(String format, Object... args)
donde format
es una cadena que especifica el formato a ser utilizado y args
es una lista de las variables a ser impreso usando ese formato. Un ejemplo simple sería
el primer parámetro, format
, es una cadena de formato que especifica cómo se formatearán los objetos del segundo parámetro, args
., La cadena de formato contiene texto sin formato, así como especificadores de formato, que son caracteres especiales que formatean los argumentos de Object... args
. (La notación Object... args
se llama varargs, lo que significa que el número de argumentos puede variar.)
los especificadores de formato comienzan con un signo de porcentaje (%) y terminan con un convertidor. El convertidor es un carácter que indica el tipo de argumento a formatear. Entre el signo de porcentaje (%) y el convertidor puede tener banderas y especificadores opcionales., Hay muchos convertidores, banderas, y especificadores, que están documentados en el java.util.Formatter
Aquí hay un ejemplo básico:
int i = 461012;System.out.format("The value of i is: %d%n", i);
El %d
especifica que la única variable es un entero decimal. El %n
es un carácter de nueva línea independiente de la plataforma. El resultado es:
The value of i is: 461012
El printf
y format
métodos sobrecargados., Cada uno tiene una versión con la siguiente sintaxis:
public PrintStream format(Locale l, String format, Object... args)
para imprimir números en el sistema francés (donde se usa una coma en lugar del lugar decimal en la representación inglesa de números de coma flotante), por ejemplo, usaría:
un ejemplo
la siguiente tabla enumera algunos de»28b2e8e596″>, que sigue a la tabla.,
Converter | Flag | Explanation | |
---|---|---|---|
d | A decimal integer. | ||
f | A float. | ||
n | A new line character appropriate to the platform running the application. You should always use %n , rather than \n ., |
||
tB | a date& time conversionlocale-specific full name of month. | ||
td, te | a date & time conversion-2-digit day of month. td tiene ceros líderes según sea necesario, te No. | ||
ty, tY | a date & time conversionty = 2-digit year, tY = 4-digit year. | ||
tl | a date & time conversionhour in 12-hour clock., | ||
tM | a date & time conversion-minutes in 2 digits, with leading ceros as necessary. | ||
tp | a date & time conversionlocale-specific am/pm (minúscula). | ||
tm | a date & time conversion-months in 2 digits, with leading ceros as necessary., | ||
tD | A date & time conversiondate as %tm%td%ty | ||
08 | Eight characters in width, with leading zeroes as necessary. | ||
+ | Includes sign, whether positive or negative. | ||
, | Includes locale-specific grouping characters. | ||
– | Left-justified.. | ||
.3 | Three places after decimal point. | ||
10.,3 | diez caracteres de ancho, justificados a la derecha, con tres lugares después del punto decimal. |
el siguiente programa muestra algunos de los formatos que puede hacer con format
. La salida se muestra entre comillas dobles en el comentario incrustado:
format
y printf
. Se pueden encontrar más detalles en la sección Basic I/O
del rastro esencial, en la página «formateo».,Usar
String.format
para crear cadenas está cubierto por cadenas. La Clase DecimalFormat
puede usar la clase java.text.DecimalFormat
para controlar la visualización de ceros, prefijos y sufijos iniciales y finales, separadores de agrupación (miles) y el separador decimal. DecimalFormat
ofrece una gran flexibilidad en el formato de números, pero puede hacer que su código sea más complejo.,
el ejemplo que sigue crea un objeto DecimalFormat
, myFormatter
, pasando una cadena de patrón al constructor DecimalFormat
., El format()
método DecimalFormat
hereda de NumberFormat
, entonces se invoca myFormatter
se acepta un double
valor como argumento y devuelve el formato de número en una cadena:
Aquí es un programa de ejemplo que ilustra el uso de DecimalFormat
:
El resultado es:
123456.789 ###,###.### 123,456.789123456.789 ###.## 123456.79123.78 000000.000 000123.78012345.67 $###,###.### $12,345.67
La siguiente tabla se explica cada línea de salida.