Cześć, napisałem prosty program w Javie, którego zadaniem jest szyfrowanie i rozszyfrowywanie tekstu za pomocą szyfru cezara. O ile to pierwsze udało mi się bezbłędnie, to z rozszyfrowywaniem mam problem. Gdy algorytm cofnie się odpowiednio, natrafia na liczby ujemne i przez co nie otrzymuje prawidłowego wyniku, czy ma ktoś jakiś pomysł, jak mógłbym to zrobić inaczej, lepiej? Poniżej fragment kodu.
public static void decrypt(String text, int k) {
char[] tAlf = {'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'};
char[] tChar = text.toCharArray();
for (int i = 0; i < tChar.length; i++) {
for (int j = 0; j < tAlf.length; j++) {
if (text.charAt(i) == tAlf[j]) {
System.out.print(tAlf[(Math.abs(j-k)) % 26]);
}
}
}
}