Hallo,
ich bin blutiger Anfänger und finde meinen Fehler nicht. Wäre nett, wenn mir jemand meinen Fehler mitteilen könnte, wenn er ihn findet. Vielen Dank schon mal im Voraus
ich bin blutiger Anfänger und finde meinen Fehler nicht. Wäre nett, wenn mir jemand meinen Fehler mitteilen könnte, wenn er ihn findet. Vielen Dank schon mal im Voraus
Java:
import java.util.*;
public class caesar {
public static void main(String args[]) {
Scanner input = new Scanner(System.in);
char[] 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' };
//Text erfassen
System.out.println("Bitte den Text zum verschlüsseln eingeben: ");
String text = input.nextLine();
//Den Text in ein char Array umwandeln
char[] textArray= text.toCharArray();
//Schlüssel erfassen
System.out.println("Bitte einen Schlüssel zum verschlüsseln eingeben: ");
int key = input.nextInt();
//mod27 von dem eingegebenen Schlüssel berechnen, damit Zahlen größer 26 kein Problem darstellen
key = key % 27;
//neues leeres Array zu speicher des verschlüsselten Text
char[] cryptArray = new char[textArray.length];
//for Schleife, welche das cryptArray mit dem verschlüsselten Text füllen soll
for(int i = 0; i < textArray.length; i++){
cryptArray[i] = verschluesseln( textArray, key, i, alphabet);
}
//Ausgabe des verschlüsselten Text
System.out.println(cryptArray);
//Schlüssel zum entschlüsseln erfassen
System.out.println("Bitte einen Schlüssel zum entschlüsseln eingeben: ");
int key2 = input.nextInt();
//mod27 von dem eingegebenen Schlüssel berechnen, damit Zahlen größer 26 kein Problem darstellen
key2 = key2 % 27;
//neues leeres Array zu speicher des ggf. entschlüsselten Textes
char[] clearArray = new char[cryptArray.length];
//for Schleife, welche das clearArray mit dem ggf. entschlüsselten Text füllen soll
for(int i = 0; i < cryptArray.length; i++){
clearArray[i] = entschluesseln( cryptArray, key2, i, alphabet);
}
//Ausgabe des ggf. entschlüsselten Text
System.out.println(clearArray);
input.close();
}
//Methode zum verschlüssen des Textes
private static char verschluesseln(char[] textArray, int key, int i, char[] alphabet) {
char letter;
int positionAlphabet = findePostionVerschluesseln(textArray, alphabet, i);
int position = key + positionAlphabet;
if (position > 26){
int a = position - 26;
letter = alphabet[a];
}else{
letter = alphabet[position];
}
return letter;
}
//Methode zur Bestimmung der Position des Buchstaben im Alphabet
private static int findePostionVerschluesseln(char[] textArray, char[] alphabet, int i) {
int testPos = 0;
while(testPos < alphabet.length){
if(alphabet[testPos] == textArray[i]){
return testPos;
}
testPos = testPos + 1;
}
return -1;
}
private static char entschluesseln(char[] cryptArray, int key2, int i, char[] alphabet) {
char letter;
int positionAlphabet = findePostionEntschluesseln(cryptArray, alphabet, i);
int position = positionAlphabet - key2;
if (0 > position){
int a = 26 + position;
letter = alphabet[a];
}else{
letter = alphabet[position];
}
return letter;
}
private static int findePostionEntschluesseln(char[] cryptArray, char[] alphabet, int i) {
int testPos = 0;
while(testPos < alphabet.length){
if(alphabet[testPos] == cryptArray[i]){
return testPos;
}
testPos = testPos + 1;
}
return -1;
}
}