hi ich versuche grad den Cäser code hin zu bekommen, das ist die Aufgabe:
http://puu.sh/6e6SW.png
und des mein Code
so es scheint ja alles Richtig zu sein, glaube ich
aber wenn ich es durlaufen lasse passiert dieser fehler:
http://puu.sh/6e6Zb.png
kann mir jemand helfen? ich arbeite mit java Eclipse falls das ne rolle spielt
http://puu.sh/6e6SW.png
und des mein Code
Java:
import java.util.Scanner;
public class Aufgabe47 {
/** Kleine Konsolenanwendung, um den Caesar-Chiffrierer auszuprobieren
* Zuerst wird der Schlüssel festgelegt, dann können wiederholt Texte eingegeben
* und ver- oder entschlüsselt werden.
*/
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.println("Schlüssel für Caesar-Chiffrierung wählen (1-25):");
System.out.print("?> ");
int schlüssel = Integer.parseInt(in.nextLine());
// Objekt erzeugen für Chiffrierer/Dechiffrierer mit dem gewählten Schlüssel
CaesarChiffrierer caesar = new CaesarChiffrierer(schlüssel);
boolean fertig = false;
do {
//Auswählen ob der Text verschlüsselt oder entschlüsselt werden soll
System.out.println("Auswahl:");
System.out.println(" v verschlüsseln");
System.out.println(" e entschlüsseln");
System.out.println(" x Ende");
System.out.print("?> ");
String wahl = in.nextLine();
if (wahl.charAt(0) == 'v') {
//Text verschlüsseln und ausgeben
System.out.print("Klartext: > ");
String text = in.nextLine();
String geheimtext = caesar.verschlüsseln(text);
System.out.println("Geheimtext: " + geheimtext);
} else if (wahl.charAt(0) == 'e') {
//Text entschlüsseln und ausgeben
System.out.print("Geheimtext:> ");
String text = in.nextLine();
String klartext = caesar.entschlüsseln(text);
System.out.println("Klartext: " + klartext);
} else if (wahl.charAt(0) == 'x') {
//Beenden
fertig = true;
} else {
System.out
.println("# unzulässige Wahl - nur 'v' oder 'e' erlaubt #");
}
System.out.println();
} while (!fertig);
System.out.println("- Ende -");
}
}
Java:
public class CaesarChiffrierer {
public String crypt = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
//Public String convert();
private String geheimtext;
public CaesarChiffrierer(int schlüssel){
//Schlüssel wird festgelegt
}
public String verschlüsseln(String klartext){
//Verschlüsselt den Text
StringBuilder sb = new StringBuilder(geheimtext.length());
for(int i = 0; i < geheimtext.length(); i++) {
int pos = crypt.indexOf(geheimtext.charAt(i));
if(pos == -1)
sb.append(" ");
else
sb.append(crypt.charAt ( (pos-3+26) %26) );
}
return sb.toString();
}
public String entschlüsseln(String geheimtext){
//Entschlüsselt den Text
StringBuilder sb = new StringBuilder(geheimtext.length());
for(int i = 0; i < geheimtext.length(); i++) {
int pos = crypt.indexOf(geheimtext.charAt(i));
if (pos == -1)
sb.append(" ");
else
sb.append(crypt.charAt((pos+3)%26));
}
return sb.toString();
}
}
so es scheint ja alles Richtig zu sein, glaube ich
aber wenn ich es durlaufen lasse passiert dieser fehler:
http://puu.sh/6e6Zb.png
kann mir jemand helfen? ich arbeite mit java Eclipse falls das ne rolle spielt