Witam piszę program stosujący szyfr cezara.
package SC;
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
char[] alphabet="abcdefghijklmnoprstuwxyz".toCharArray();
System.out.println("Podaj zdanie do zaszyfrowania.");
String input=in.nextLine();
System.out.println("Podaj wartość przesunięcia.");
int przesunięcie=in.nextInt();
for (int i=0; i<input.length(); i++){
for (int l=0; l<alphabet.length; l++){
if (input.charAt(l)==alphabet[23]){ //Ten if wcześniej był niżej, jednakże przeniosłem go dla testu.
alphabet[l]/=alphabet.length;
}
if (input.charAt(i)==alphabet[l]){
System.out.print(alphabet[l+przesunięcie]);
}
}
}
}
}
Wszystko ładnie pięknie do czasu kiedy zostanie wpisana literka "z". Rozumiem czemu wywala wyjątek i teoretycznie jak temu zaradzić, ale nie potrafię tego zrobić w praktyce. Tam na pewno widać nieudolne próby zapętlenia tablicy, żeby w momencie gdy nastąpi literka "z". Tablica przesuwała znaki od indeksu 0. Męczę się z tym i ciągle wyświetla mi wyjątek a te ify modyfikowałem już na różne sposoby. Brak mi koncepcji. A ma być jeszcze motyw, że przy wpisaniu ujemnej cyfry program ma szyfrować wstecz. Czyli ten sam problem dla litery "a". Proszę o pomoc w jaki sposób ogarnąć aby wykonywała się pętla na tablicy?