You are on page 1of 7

Formateo de cadenas en Java

http://mundogeek.net/archivos/2009/05/17/formateo-de-cadenas-en-java/

Formateo de cadenas en Java

Contact Centre - BT
Confe en el Lder y dele a su Empresa los Mejores Servicios.
BT.es/Contact-Centre

Twittear

Recomendar

Si has tenido algn contacto previo con C/C++ u otro lenguaje de programacin puede que eches de menos un mtodo que permita utilizar especificadores de conversin o mscaras para formatear cadenas en Java, al estilo de la funcin sprintf de C. Supongamos, por ejemplo, que quisiramos mostrar en pantalla un nmero en coma flotante, con la peculiaridad de que necesitramos que slo se mostraran 2 decimales. Podramos, por ejemplo, convertir el nmero en una cadena y manipularla para quedarnos con 2 caracteres despus de la coma, pero existen mejores formas de lidiar con este problema.

String.format()
La primera solucin es hacer uso del mtodo esttico format de la clase String para crear una cadena que se adapte a nuestras necesidades y que ms tarde imprimiremos con el consabido System.out.println() o System.out.print(). Este mtodo toma como parmetros una cadena con uno o ms especificadores de conversin y una lista de argumentos. En el siguiente fragmento de cdigo, por ejemplo, se sustituiran los especificadores %s por el valor de las variables usuario y mensajes respectivamente.
view plain copy to clipboard print ?

01. 02. 03. 04. 05. 06.

public class Ejemplo { public static void main(String[] args) { String usuario = "zootropo"; int mensajes = 36; String s = String.format("%s escribi %s mensajes", usuario, mensajes);

1 de 7

11/11/2012 10:56

Formateo de cadenas en Java

http://mundogeek.net/archivos/2009/05/17/formateo-de-cadenas-en-java/

07. 08. 09.

System.out.println(s); } }

Los distintos especificadores de conversin que podemos utilizar son los siguientes: Especificador Formato
%b %h %s %c %d %o %x %f %e %g %a %t

Booleano Hashcode Cadena Caracter unicode Entero decimal Entero octal Entero hexadecimal Real decimal Real notacin cientfica Real notacin cientfica o decimal Real hexadecimal con mantisa y exponente Fecha u hora

A estos caracteres que indican cmo se debe formatear los distintos valores de la lista de parmetros se les puede aadir caracteres opcionales siguiendo el siguiente formato: %[ndice$][opciones][ancho][.precisin]conversin donde ndice se puede utilizar para indicar especificamente el valor de la lista de valores por el que sustituirlo
view plain copy to clipboard print ?

01. 02. 03. 04. 05. 06. 07. 08.

public class Ejemplo { public static void main(String[] args) { int numero = 42; String s = String.format("%1$d en hexadecimal es %1$x", numero); System.out.println(s); } }

ancho es un entero no negativo que indica el nmero de caracteres mnimo que debe ocupar ese valor al mostrarse en pantalla. Si el valor tiene menos caracteres que los indicados se rellenar el vaco con espacios. precisin es un entero no negativo que indica el nmero de decimales a utilizar para un nmero en coma flotante (la misma funcin se encarga de redondear) o el nmero de caracteres a mostrar para una cadena.
view plain copy to clipboard print ?

01. 02. 03. 04.

public class Ejemplo { public static void main(String[] args) { float numero = 3.14159f;

2 de 7

11/11/2012 10:56

Formateo de cadenas en Java

http://mundogeek.net/archivos/2009/05/17/formateo-de-cadenas-en-java/

05. 06. 07. 08.

String s = String.format("PI es %.3f", numero); System.out.println(s); } }

System.out.printf()
Pero como decamos al principio del artculo existe otra forma ms para mostrar cadenas formateadas en la consola, y es el mtodo System.out.printf(). Este mtodo funciona de forma similar a una combinacin de String.format() y System.out.print() ya que podemos pasar directamente la cadena con los especificadores de conversin y la lista de argumentos para imprimirse, de forma similar a la funcin sprintf de C. El fragmento de cdigo anterior, por ejemplo, tendra este aspecto al reescribirlo con un System.out.printf():
view plain copy to clipboard print ?

01. 02. 03. 04. 05. 06. 07.

public class Ejemplo { public static void main(String[] args) { float numero = 3.14159f; System.out.printf("PI es %.3f", numero); } }

cadenas, Java, printf, programacion Comentarios 1. Argaen Tambin se puede usar el mtodo System.out.format() que hace ms simple la primera forma, haciendo que el cdigo: String s = String.format(%1$d en hexadecimal es %1$x, numero); System.out.println(s); Se resuma en: System.out.format(%1$d en hexadecimal es %1$x, numero);
Responder

3 de 7

11/11/2012 10:56

Formateo de cadenas en Java

http://mundogeek.net/archivos/2009/05/17/formateo-de-cadenas-en-java/

Zootropo Bueno, el mtodo format de los PrintStream funciona exactamente igual que el mtodo printf.
Responder

2. Diseno WEB profesional Excelente aporte! gracias


Responder

3. Juan perez public class Ejemplo { public static void main(String[] args) { double IVA String s = String.format(15%%); System.out.println(s); } }
Responder

4. Juan perez public class Ejemplo { public static void main(String[] args) { double IVA String s = String.format(15%%); System.out.println(s); } } /esto nos sirve para imprimir en pantalla (15%); del IVA. Espero les sirva.
Responder

5. hector miguel eyy men me acabas de salvar la chamba .. esa era mi tarea .. buen aporte..
Responder

6. Java | Pearltrees [...] Si has tenido algn contacto previo con C/C++ u otro lenguaje de programacin puede que eches de menos un mtodo que permita utilizar especificadores de conversin o mscaras para formatear cadenas en Java, al estilo de la funcin sprintf de C. Supongamos, por ejemplo, que quisiramos mostrar en pantalla un nmero en coma flotante, con la peculiaridad de que necesitramos que slo se mostraran 2 decimales. Podramos, por ejemplo, convertir el nmero en una cadena y manipularla para quedarnos con 2 caracteres despus de la coma, pero existen mejores formas de lidiar con este problema. Formateo de cadenas en Java [...]
Responder

7. Arturo de Leon Hola me gusto mucho tema, estaba leyendo algo acerca de ello en el libro de deitel pero me

4 de 7

11/11/2012 10:56

Formateo de cadenas en Java

http://mundogeek.net/archivos/2009/05/17/formateo-de-cadenas-en-java/

quedaban muchas dudas y me las despejastes gracias solo si por hay supieras cuando formateo un float en ves de ser el numero 1,200.23 me sale alreves 1.200,23
Responder

Deja un comentario
Nombre email (no se mostrar) Tu web (opcional)

5 de 7

11/11/2012 10:56

Formateo de cadenas en Java

http://mundogeek.net/archivos/2009/05/17/formateo-de-cadenas-en-java/

Mundo geek es una web escrita por Ral Gonzlez Duque, dedicada principalmente a las nuevas tecnologas y la informtica.

Mundo geek en
Facebook Me gusta A 5,949 personas les gusta Mundo geek.

Bhanu Emmanuel Frederick Plug-in social de Facebook

Archivos Acerca Contacto Traducciones Wiki

6 de 7

11/11/2012 10:56

Formateo de cadenas en Java

http://mundogeek.net/archivos/2009/05/17/formateo-de-cadenas-en-java/

Aviso legal

7 de 7

11/11/2012 10:56

You might also like