Formatos en Java con prinft
Noviembre 29th, 2004 - [Enlace local]
Con la nueva versión de Java tenemos acceso a un interpretador de formatos al estilo printf de C, mediante la clase Formatter. Es decir que con Java 5 podemos hacer lo siguiente:
y obtener el resultado:Calendar c = new GregorianCalendar(1995, MAY, 23); String s = String.format(”Cumpleaños: %1$tm %1$te,%1$tY”, c);
O utilizar directamente la clase Formatter:Cumpleaños: May 23, 1995
StringBuilder sb = new StringBuilder();
Formatter formatter = new Formatter(sb, Locale.ES);
formatter.format(”Diferencia desde la última
declaración: € %(,.2f”, balanceDelta);
y obtener:¿Pero que pasa si todavía no tenemos la posibilidad de utilizar Java 5? La respuesta pasa por utilizar alguna de las implementacíones disponibles en Java de printf.Diferencia desde la última declaración: € (6.217,58)
Con las clases hechas por Henrik Bengtsson y disponibles en braju.com, podemos tener la misma funcionalidad:
Format.printf(\"%-15s %4d %6.2f%%\n\",
new Parameters(”Donald Duck”).add(58).add(97.983));
o
Format.printf(\"%-15s %4d %6.2f%%\n\", new Object[]{\"Donald Duck\",
new Integer(58), new Double(97.983)});
y obtener en ambos casosOtra biblioteca disponible es Lava3 Printf, con similares funcionalidades.Donald Duck 58 97.98%
Tanto para que nuestras salidas por consola sean mucho mas legibles como para escribir en ficheros de columnas fijas, printf es un método que se hechaba en falta pero ahora tenemos disponible en Java 5. Mientras tanto, las implementaciones disponibles en la web son mas que suficientes y ofrecen una excelente performance.