Ich versuche, eine Caesar-Verschlüsselung in Java zu implementieren, aber ich bekomme falsche Ausgabe, wenn eine Drehung getan werden soll, dh zum Beispiel Schlüssel = 2 und Text ist "ZZ" die Ausgabe sollte "bb" sein. Ich weiß nicht, wo ich falsch im Code unten bin.Versuchen, eine Caesar-Chiffre in Java zu implementieren
import java.io.*;
import java.util.*;
import java.text.*;
import java.math.*;
import java.util.regex.*;
public class Solution {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();// length of the string
String s = in.next();// The string to be encrypted using caesar cipher
int k = in.nextInt();// The key k
int key;
for(int i =0;i<n;i++){
int ascii = (int)s.charAt(i);
if(s.charAt(i)=='-'){
System.out.print('-');
continue;
}
if(ascii >= 65 && ascii <=90){
if(k+ascii > 90){
k=k%26;
if(k==0){
k+=1;
}
ascii=64+k;
}
else{
ascii=ascii+k;
}
}
if(ascii >= 97 && ascii <=122){
if(k+ascii > 122){
k=k%26;
if(k==0){
k+=1;
}
ascii=96+k;
}
else{
ascii=ascii+k;
}
}
char c=(char)ascii;
System.out.print(c);
}
}
}
Danke funktioniert wie ein Zauber, dachte an die gleiche Sache, war aber ein bisschen verwirrt. –