Il metodo setCharAt() non esiste, per questo non te lo trova. Ho controllato la documentazione e tale metodo non esiste né nella JDK 1.4.2, né nella più recente 1.5.0.
Come procedere, quindi, per il tuo problema: ci sono essenzialmente 2 vie. Una, la più rapida, consiste nell'utilizzare il metodo replace()
codice:
public String replace(char oldChar, char newChar)
Questo metodo sostituisce tutte le occorrenze del carattere oldChar con il carattere newChar.
Esempio di utilizzo:
codice:
String miaStringa = "Questa è la stringa originale";
System.out.println(miaStringa);
miaStringa = miaStringa.replace('a', 'o');
System.out.println(miaStringa);
con il relativo output:
codice:
Questa è la stringa originale
Questo è lo stringo originole
Altro metodo è quello di utilizzare gli array di caratteri: ti costruisci l'array relativo alla stringa e, con un ciclo, vai a sostituire, carattere per carattere, le occorrenze vecchie con quelle nuove. Poi ricostruisci la stringa. Esempio:
codice:
String miaStringa = "Questa è la stringa originale";
System.out.println(miaStringa);
char [] mioArray = miaStringa.toCharArray();
for (int i=0; i<mioArray.length; i++)
if (mioArray[i] == 'a') mioArray[i] = 'o';
miaStringa = new String(mioArray);
System.out.println(miaStringa);
E l'output è identico a quello precedente.
Ciao.