Introducción a String.format
En Java, String.format
es un método muy útil que permite crear cadenas de texto con un formato específico. Funciona de manera similar a printf
, pero devuelve una cadena en lugar de imprimirla directamente en la consola. Esto lo hace ideal para construir mensajes estructurados sin concatenar manualmente variables y texto.
Sintaxis de String.format
String resultado = String.format("formato", argumentos);
formato
: Una cadena de texto con marcadores de posición.argumentos
: Valores que reemplazarán a los marcadores en la cadena.
Ejemplo Básico
public class Main {
public static void main(String[] args) {
String nombre = "Carlos";
int edad = 25;
String mensaje = String.format("Hola, mi nombre es %s y tengo %d años.", nombre, edad);
System.out.println(mensaje);
}
}
Salida:
Hola, mi nombre es Carlos y tengo 25 años.
Modificadores de Formato en String.format
Para formatear correctamente los valores, String.format
usa especificadores de formato. Cada especificador comienza con %
seguido de un código que indica el tipo de dato.
Tabla de Modificadores
Modificador | Descripción | Ejemplo |
---|---|---|
%s | Cadena de texto | String.format("Hola %s", "Mundo") // "Hola Mundo" |
%d | Entero decimal | String.format("Edad: %d", 30) // "Edad: 30" |
%f | Número decimal | String.format("Precio: %.2f", 9.99) // "Precio: 9.99" |
%x | Número en hexadecimal | String.format("Hex: %x", 255) // "Hex: ff" |
%o | Número en octal | String.format("Octal: %o", 8) // "Octal: 10" |
%c | Carácter | String.format("Letra: %c", 'A') // "Letra: A" |
%b | Booleano | String.format("Estado: %b", true) // "Estado: true" |
Modificadores Adicionales
Modificador | Descripción | Ejemplo |
---|---|---|
%10s | Alinea a la derecha en un espacio de 10 caracteres | String.format("%10s", "Hola") // " Hola" |
%-10s | Alinea a la izquierda en un espacio de 10 caracteres | String.format("%-10s", "Hola") // "Hola " |
%010d | Rellena con ceros hasta 10 dígitos | String.format("%010d", 123) // "0000000123" |
%.2f | Limita los decimales a 2 cifras | String.format("%.2f", 9.987) // "9.99" |
%,d | Separa miles con comas | String.format("%,d", 1000000) // "1,000,000" |
Ejemplos Prácticos
1. Formateo de Precios en una Tienda Online
public class Main {
public static void main(String[] args) {
double precio = 1999.99;
String mensaje = String.format("El precio es $%,.2f", precio);
System.out.println(mensaje);
}
}
Salida:
El precio es $1,999.99
2. Mostrar Datos de un Usuario con Espaciado
public class Main {
public static void main(String[] args) {
String nombre = "María";
int edad = 30;
System.out.println(String.format("%-10s | %3d años", nombre, edad));
}
}
Salida:
María | 30 años
3. Formateo de Fechas
import java.util.Calendar;
public class Main {
public static void main(String[] args) {
Calendar fecha = Calendar.getInstance();
int dia = fecha.get(Calendar.DAY_OF_MONTH);
int mes = fecha.get(Calendar.MONTH) + 1; // Los meses en Calendar comienzan desde 0
int anio = fecha.get(Calendar.YEAR);
System.out.println(String.format("Hoy es %02d/%02d/%d", dia, mes, anio));
}
}
Salida: (Depende del día actual)
Hoy es 05/04/2024
Buenas Prácticas
- Usa
String.format
en lugar de concatenaciones con+
para mejorar la legibilidad. - Si formateas números decimales, usa
%.2f
o%,.2f
para mayor claridad. - Siempre revisa el espacio disponible cuando uses alineaciones (
%10s
,%-10s
).
Conclusión
El método String.format
en Java es una herramienta poderosa para manejar cadenas de texto con formato. Nos permite alinear textos, formatear números y estructurar datos de manera eficiente y elegante. Con esta guía, ya puedes aplicar String.format
en tus propios proyectos y mejorar la presentación de la información en tus programas.
Deja una respuesta