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


¿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! 😄
Subscribe to my newsletter
Read articles from Carlos Exposito directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
