Hallo zusammen,
ich bin gerade dabei einen Algorithmus für die Cäsar Verschlüsselung zu schreiben. Soweit so gut.. die Verschlüsselung um n funktioniert schon, nur heißt es in der Aufgabenstellung, wenn man nach n (also größer als 1) verschlüsseln möchte, soll das Programm bspw. bei einer Verschlüsselung um 3, aus einem "A" erst ein "B" und dann ein "C" machen. Mein Programm tut das zwar auch, nur schreibt es dann wenn man das Wort "Hallo" verschlüsseln möchte die Verschlüsselung dreimal hin, was nicht sein soll.
Könnt ihr mir da vllt weiterhelfen, oder einen kleinen Schubser geben. Also ich möchte keine komplette Lösung, sondern noch was dabei lernen
Grüße Tiyen
ich bin gerade dabei einen Algorithmus für die Cäsar Verschlüsselung zu schreiben. Soweit so gut.. die Verschlüsselung um n funktioniert schon, nur heißt es in der Aufgabenstellung, wenn man nach n (also größer als 1) verschlüsseln möchte, soll das Programm bspw. bei einer Verschlüsselung um 3, aus einem "A" erst ein "B" und dann ein "C" machen. Mein Programm tut das zwar auch, nur schreibt es dann wenn man das Wort "Hallo" verschlüsseln möchte die Verschlüsselung dreimal hin, was nicht sein soll.
Könnt ihr mir da vllt weiterhelfen, oder einen kleinen Schubser geben. Also ich möchte keine komplette Lösung, sondern noch was dabei lernen
Java:
import java.util.*;
public class CäsarVerschlüsselung {
public static void main(String args[]) {
Scanner input = new Scanner(System.in);
System.out.println("Bitte den Text zum verschlüsseln eingeben: ");
String text = input.nextLine();
String encode = ""; // Platzhalter für den verschlüsselten Text
char großAlphabet[] = { '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 kleinAlphabet[] = { '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', 'ß', 'ä', 'ö', 'ü' };
System.out.println("Bitte Verschlüsselung nach N eingeben: ");
int key = input.nextInt();// Verschiebung um n Stellen
input.close();
int zähler = 0;
while (zähler <= key) {
for (int i = 0; i < text.length(); i++) {
for (int j = 0; j < großAlphabet.length; j++) {
if (text.charAt(i) == großAlphabet[j]) {
encode = encode + großAlphabet[++j];
} else if (text.charAt(i) == ' ') {
encode += ' ';
break;
}
}
for (int k = 0; k < kleinAlphabet.length; k++) {
if (text.charAt(i) == 'ß') {
encode += 'ß';
break;
} else if (text.charAt(i) == kleinAlphabet[k]) {
encode += kleinAlphabet[++k];
}
}
}
zähler++;
}
System.out.println("Codiert: " + encode);
}
}
Grüße Tiyen
Zuletzt bearbeitet: