Existe otra manera de formatear Strings y es usando System.out.printf(...) Lo descubrí porque IntelliJ me lo recomendó e incluso hizo la corrección de forma automática. Como dato curioso el mismo IntelliJ menciona que usar System.out.println(String.format(...)) es redundante. El único detalle es que tenemos que concatenar un salto de línea (\n ó %n)
String nombre = "María";
int edad = 30;
double valor = 55.9999;
String texto = "Mi nombre es %s, tengo %d años y hoy gasté %.2f dólares";
System.out.printf(texto + "\n", nombre, edad, valor);
System.out.println(String.format(texto, nombre, edad, valor));
El resultado es:
Mi nombre es María, tengo 30 años y hoy gasté 56.00 dólares
Mi nombre es María, tengo 30 años y hoy gasté 56.00 dólares
También funciona con Text Blocks y así existe otra forma de formatearlos sin necesidad de poner .formatted(...) al final. Aquí no tenemos que concatenar un salto de línea
int fechaDeLanzamiento = 1999;
String sinopsis1 = """
Matrix es una paradoja
La mejor película del fin del milenio
Fue lanzada en: %d
""";
System.out.printf(sinopsis1,fechaDeLanzamiento);
String sinopsis2 = """
Matrix es una paradoja
La mejor película del fin del milenio
Fue lanzada en: %d
""".formatted(fechaDeLanzamiento);
System.out.println(sinopsis2);
El resultado es:
Matrix es una paradoja
La mejor película del fin del milenio
Fue lanzada en: 1999
Matrix es una paradoja
La mejor película del fin del milenio
Fue lanzada en: 1999