Noticias Weblogs Foros Wiki Código
Sponsors:

Meta-Info

¿Que es?

Planeta Código es un agregador de weblogs sobre programación y desarrollo en castellano. Si eres lector te permite seguirlos de modo cómodo en esta misma página o mediante el fichero de subscripción.

rss subscripción

Sponsors

PlanetaCódigo en inglés

Puedes utilizar las siguientes imagenes para enlazar PlanetaCodigo:
planetacodigo

planetacodigo

Si tienes un weblog de programación y quieres ser añadido aquí, envíame un email solicitándolo.

Idea: Juanjo Navarro

Diseño: Albin

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:

Calendar c = new GregorianCalendar(1995, MAY, 23);
String s = String.format(”Cumpleaños: %1$tm %1$te,%1$tY”, c);
y obtener el resultado:

Cumpleaños: May 23, 1995
O utilizar directamente la clase Formatter:

StringBuilder sb = new StringBuilder();
Formatter formatter = new Formatter(sb, Locale.ES);
formatter.format(”Diferencia desde la última
                  declaración: € %(,.2f”, balanceDelta);
y obtener:

Diferencia desde la última declaración: € (6.217,58)
¿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.

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 casos

Donald Duck       58  97.98%
Otra biblioteca disponible es Lava3 Printf, con similares funcionalidades.

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.

» Leer más, comentarios, etc...