Appunto dicevo, se tutto quello che si deve fare e' la sostituzione di sottostringhe, basta ripensare il tutto in maniera piu' semplice ed usare dei "segnaposto" che non vadano "valutati" ma semplicemente individuati e sostituiti.
Ad esempio

codice:
String nome = "Salvatore";
String segnaposto = "XXXXX";
String stringa = "Io mi chiamo XXXXX";
stringa.replace (segnaposto, nome);
Ovviamente questo e' Java... E non ne sono manco sicuro! :rollo: