🧵 Java 21: Di adiós al `+` con los nuevos String Templates

Carlos ExpositoCarlos Exposito
2 min read

¿Harto de concatenar strings con mil formas distintas? ¿Has perdido la cuenta entre +, StringBuilder, printf, format, y MessageFormat?
¡Buenas noticias! Con Java 21, llega una forma más limpia, segura y flexible: String Templates 🎉


😵‍💫 El problema de siempre con los strings

Antes de hablar de la solución, recordemos las opciones clásicas que hemos usado todos:

String nombre = "Sofía";
int edad = 30;

// Usando el operador +
System.out.println("Hola " + nombre + ", tienes " + edad + " años");

// Usando StringBuilder
System.out.println(new StringBuilder("Hola ").append(nombre).append(", tienes ").append(edad).append(" años"));

// Usando String.format
System.out.println(String.format("Hola %s, tienes %d años", nombre, edad));

Funciona, pero... 🔧 demasiado código.
🔐 Poca seguridad.
😖 Difícil de leer cuando se complica.


🌟 Bienvenidos los String Templates

Java 21 introduce las expresiones plantilla (preview feature) que nos permiten escribir strings con interpolación como en otros lenguajes modernos, pero a la manera Java: potente y con validación incluida.

String nombre = "Sofía";
String saludo = STR."Hola \{nombre}, ¡bienvenida!";
System.out.println(saludo); // Hola Sofía, ¡bienvenida!

⚒️ Cómo activar los String Templates

Como es una preview feature, hay que activarla al compilar y ejecutar:

javac --enable-preview --release 21 MiArchivo.java
java --enable-preview MiArchivo

🧪 Ejemplos simpáticos con String Templates

1. Interpolación directa

int puntos = 1200;
String nivel = STR."Tienes \{puntos} puntos. ¡Nivel desbloqueado!";

2. Texto multilínea y JSON friendly

String nombre = "María";
String email = "maria@example.com";
String json = STR."""
{
  "nombre": "\{nombre}",
  "email": "\{email}"
}
""";
System.out.println(json);

3. Plantilla personalizada (¡haz la tuya!)

var MAYUS = StringTemplate.Processor.of(st -> st.interpolate().toUpperCase());
String nombre = "Eduardo";
System.out.println(MAYUS."Hola \{nombre}, ¿todo bien?");

4. Localización automática

FormatProcessor ESP = FormatProcessor.create(Locale.forLanguageTag("es-ES"));
for (int i = 1; i <= 3; i++) {
    System.out.println(ESP."Resultado número %2d\{i}");
}

✅ Ventajas de los String Templates

  • ✍️ Menos código repetido
  • 🔒 Más seguridad y validación
  • 🌍 Soporte nativo para localización
  • 🔄 Compatible con JSON, HTML, SQL y más

🧠 Conclusión

Los String Templates en Java 21 no son solo azúcar sintáctico:
💡 Son más expresivos, seguros y modernos.
💪 Te permiten mantener tu código limpio, legible y libre de errores tontos.

Prueba esta nueva forma de trabajar con strings, y nunca más volverás al +.
¡Tu código (y tus compañeros de equipo) te lo agradecerán! 😄

0
Subscribe to my newsletter

Read articles from Carlos Exposito directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Carlos Exposito
Carlos Exposito