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.formaten lugar de concatenaciones con+para mejorar la legibilidad. - Si formateas números decimales, usa 
%.2fo%,.2fpara 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