En java podemos parsear un conjunto de valores a una cadena mediante el API de la clase ‘String‘. Para ello se debe hacer una llamada al método ‘format‘ pasándole como parámetros:
- Patrón de formateo, donde indicaremos la estructura de la salida del método.
- El resto de parámetros separados por coma.
mETODO sTRING.FORMAT
Este método ‘String.format’ devuelve una cadena formateada con los parámetros recibidos. Se le deben pasar los parámetros en el orden y con el tipo que se hayan definido en la cadena de formato.
1 public static String format(String formato, Object... args)
Vamos a explicarlo con algunos ejemplos.
Ejemplo 1 – Nombre y edad
Tenemos un ‘String’ con el nombre de una persona, y un entero con la edad de la misma, y queremos conseguir una cadena de este estilo:
1 El nombre de la persona es David y tiene 28 años
Para ello haríamos uso de la función ‘String.format’ indicando el patrón de la línea y los parámetros con los que se debe rellenar de esta manera:
Java |copy code |?
1 2 int edad = 28;3 String nombre = "David";4 String patron = "El nombre de la persona es %s y tiene %d años";5 String resultado = String.format(patron,nombre,edad);6 7 System.out.print(resultado); // Pinta esto por pantalla -> El nombre de la persona es David y tiene 28 años8
Ejemplo 2 – Hora y minutos
En este ejemplo tenemos un String con el nombre de la persona y dos enteros, uno con la hora y el otro con los mínutos, y queremos mostrar un texto como el siguiente:
1 David ha accedido a las 13:45 h
En este ejemplo debemos llamar a la función ‘String.fomat()’ y pasarle los tres parámetros:
Java |copy code |?
1 2 int hora = 13;3 int minutos = 45;4 String nombre = "David";5 String patron = "%s ha accedido a las %d:%d h";6 String resultado = String.format(patron,nombre,hora,minutos);7 8 System.out.print(resultado); // Pinta esto por pantalla -> David ha accedido a las 13:45 h9
En el ejemplo anterior, podríamos tener problemas si nos pidiesen que tanto la hora como los minutos se deben mostrar con dos dígitos, ya que si la hora y los minutos fuese por ejemplo “5”, entonces la salida sería:
1 David ha accedido a las 5:5 h
Para forzar que se muestren siempre dos dígitos, y que en caso de sólo tener uno rellene con ceros, utilizaremos el indicador ‘%02d‘ de la siguiente manera:
Java |copy code |?
1 2 int hora = 5;3 int minutos = 5;4 String nombre = "David";5 String patron = "%s ha accedido a las %02d:%02d h";6 String resultado = String.format(patron,nombre,hora,minutos);7 8 System.out.print(resultado); // Pinta esto por pantalla -> David ha accedido a las 05:05 h9
Existen muchos especificadores de conversión para el tipo de parámetro recibido, a continuación mostramos una tabla de los soportados por el método ‘String.format()':
Conversor | Valor |
---|---|
%b |
Booleano |
%h |
Hashcode |
%s |
Cadena |
%c |
Caracter unicode |
%d |
Entero decimal |
%o |
Entero octal |
%x |
Entero hexadecimal |
%f |
Real decimal |
%e |
Real notación científica |
%g |
Real notación científica o decimal |
%a |
Real hexadecimal con mantisa y exponente |
%t |
Fecha u hora |
Combinando estos tipos podremos parsear cualquiera cadena pasándole parámetros de manera rápida.
Deja tu comentario