Salve a tutti, premesso che non sono un informatico né un esperto ma solo uno che si diletta a programmare una volta ogni tanto, avrei un problema da porvi...
Ho scritto due righe di codice per un programma che riceve in ingresso un testo e restituisce in output il testo modificato in modo opportuno.
vi scrivo direttamente il codice per farvi capire immediatamente
public static void main(String [] args){
String[]lettere={"a","b","c","d","e","f","g","h"};
String frase="abcdefg gfedcba";
System.out.println(frase);
for (int i=0; i<lettere.length-1; i++) {
frase=frase.replace(lettere[i],lettere[i+1]);
}
System.out.println(frase);
}
in pratica io vorrei che al posto di ogni "a" compaia una "b" e al posto di ogni "b" compaia una "c" e così via.
tralasciate il fatto che ho usato un array di stringhe al cui interno di ogni stringa vi è solo un carattere.
Nel programma che vorrei scrivere si tratterà di vere è proprie stringhe di lunghezza varia
Ovviamente così come ho strutturato il programma vi è un evidente errore, perchè in output riceverò solo "hhhhhhh hhhhhhh"
Questo è logico perchè quando si entra nel ciclo di for la frase subirà le seguenti trasformazioni
abcdefg gfedcba
bbcdefg gfedcbb
ora il programma, trovando nella frase delle "b" in più le trasforma e diventa
cccdefg gfedccc
e così via...
Come posso fare per risolvere questo inghippo???
Personalmente ho pensato che il problema è quel ciclo di for, l'ideale sarebbe se il programma trasformasse tutte le stringhe contemporaneamente!
E difatti ho letto da qualche parte spulciando su internet che è possibile passare nella funzione "replace" non solo una stringa da cambiare più quella che la sostituisce ma un intero array contenente le stringhe da cambiare più l'array contenente le stringhe che sostituiscono le precedenti
solo che non capisco come si applica!
qualcuno può aiutarmi?
vi prego non scrivete niente di troppo tecnico o termini strettamente settoriali!xD
ho solo una conoscenza di base della programmazione java
VI ringrazio in anticipo e attendo risposte