No hace mucho descubrí el método format() de la clase String. Se usa de forma muy similar a sprintf() de C/C++
String cadena = String.format("Esto es un numero %d y esto un string %s", 12, "hola");Admite también todas las "virguerías" de C/C++, por ejemplo, si queremos un número con en hexadecimal, mayúsculas y cuatro cifras, aunque sean ceros por delante
String.format("Numero hexadecimal 0x%04X", 23);