Una taza de café construida con las letras de JAVA

Guía Completa de String.format en Java: Formateo Avanzado de Cadenas

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

ModificadorDescripciónEjemplo
%sCadena de textoString.format("Hola %s", "Mundo") // "Hola Mundo"
%dEntero decimalString.format("Edad: %d", 30) // "Edad: 30"
%fNúmero decimalString.format("Precio: %.2f", 9.99) // "Precio: 9.99"
%xNúmero en hexadecimalString.format("Hex: %x", 255) // "Hex: ff"
%oNúmero en octalString.format("Octal: %o", 8) // "Octal: 10"
%cCarácterString.format("Letra: %c", 'A') // "Letra: A"
%bBooleanoString.format("Estado: %b", true) // "Estado: true"

Modificadores Adicionales

ModificadorDescripciónEjemplo
%10sAlinea a la derecha en un espacio de 10 caracteresString.format("%10s", "Hola") // " Hola"
%-10sAlinea a la izquierda en un espacio de 10 caracteresString.format("%-10s", "Hola") // "Hola "
%010dRellena con ceros hasta 10 dígitosString.format("%010d", 123) // "0000000123"
%.2fLimita los decimales a 2 cifrasString.format("%.2f", 9.987) // "9.99"
%,dSepara miles con comasString.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

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.