Quote Originariamente inviata da MrBlonde Visualizza il messaggio
mi sono bloccato, non riesco a capire come posso legare la frase data in input con la chiave e con l'alfabeto!
Il codice, per come è scritto e postato qui, non è molto comprensibile. Comunque vedo svariati indexOf, substring, reverse, toString, che secondo me non servono proprio! Qui servirebbe solo un po' di matematica (e l'uso di charAt() di String).

La prima lettera in chiaro è 'L'. Se consideriamo A=0, allora L ha indice 11.
Siccome il carattere-chiave è 'Z' e il suo alfabeto va all'indietro, allora vuol dire che da 'Z' (indice logico 0) devi tornare indietro fino all'indice logico 11 .... che è la lettera 'O', appunto l'output "cifrato".

Chiaramente è possibile che si debba fare il "giro". Che è il caso del 3° carattere in chiaro:

La terza lettera in chiaro è 'N', ha indice 13. Il carattere-chiave è 'J', quindi da questo devi sottrarre 13. Andresti a -4 quindi devi fare il giro da Z, cioè Z .. Y .. X ... W !