Hallo zusammen,
ich habe folgendes Problem:
ich möchte in ein GUI ein Wort eingeben, welches dann per Button verschlüsselt werden soll. Die Verschlüsselung wird über einen Key, der aus Zahlen besteht vorgenommen.
Bevor ich jetzt zu dem GUI komme habe ich erstmal eine Frage:
Ich habe eine Klasse Enigma mit den Methoden encrypt und decrypt, sowie eine Klasse Inout, die über die Konsole bedient werden soll. Wenn ich in die Konsole ein Wort und einen Schlüssel eingebe dann bekomme ich aber eine Fehlermeldung.
Und zwar: java.lang.NullPointerException
Ich hab schon gelesen was das bedeutet, aber irgendwie scheint meine Fehlersuche nichts zu bringen.
Hier ist der Enigma Code:
Und hier die Inout Klasse:
Die Fehlermeldung inklusive testwerte für die Konsole sieht dann folgendermaßen aus:
Geben Sie das Wort ein:Hallo
Geben Sie den Schlüssel ein: 5
Exception in thread "main" java.lang.NullPointerException
at Enigma.encrypt(Enigma.java:18)
at Inout.main(Inout.java:21)
Ich versuche jetzt seit Montag den Fehler zu finden, aber ich häcks nich mehr, vielleicht habt ihr einen Denkanstoß?
Vielen Dank schonmal
Ikarus
ich habe folgendes Problem:
ich möchte in ein GUI ein Wort eingeben, welches dann per Button verschlüsselt werden soll. Die Verschlüsselung wird über einen Key, der aus Zahlen besteht vorgenommen.
Bevor ich jetzt zu dem GUI komme habe ich erstmal eine Frage:
Ich habe eine Klasse Enigma mit den Methoden encrypt und decrypt, sowie eine Klasse Inout, die über die Konsole bedient werden soll. Wenn ich in die Konsole ein Wort und einen Schlüssel eingebe dann bekomme ich aber eine Fehlermeldung.
Und zwar: java.lang.NullPointerException
Ich hab schon gelesen was das bedeutet, aber irgendwie scheint meine Fehlersuche nichts zu bringen.
Hier ist der Enigma Code:
Java:
public class Enigma implements Cipher{
public static void main (String[]args){}
@Override
public String decrypt(String cryptText, int key) {// Entschlüsseln
StringBuffer ergebnis = new StringBuffer();
key %= 26;
for (int i = 0; i < cryptText.length(); i++) {
int min = 65, max = 90;
}
return null;
}
@Override
public String encrypt(String plainText, int key) {// Verschlüsseln
String ergebnis = "";
key %= 26;
for (int i = 0; i < plainText.length(); i++) {
int min = 65, max = 90;
int c = plainText.charAt (i);
if ((c<'A')||(c>'z')||(c>'Z')&&(c<'a')){
ergebnis +=((char)c);
continue;
}
if (c>max) {
min += 32;
max += 32;
}
int cc = c + key;
if (cc > max)
c= cc - 26;
else
c= cc;
ergebnis +=((char) c);
}
return ergebnis.toString();
}}
Und hier die Inout Klasse:
Java:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Inout {
public static void main(String[] args) {
// TODO Auto-generated method stub
BufferedReader in = new BufferedReader (new InputStreamReader(System.in));
try {
System.out.print("Geben Sie das Wort ein:");
String text = in.readLine();
System.out.print("Geben Sie den Schlüssel ein: ");
Object key = Integer.parseInt (in.readLine());
Enigma st = new Enigma();
String aus = st.encrypt(text, 5);
System.out.printf((""));
}catch (IOException e){}
}}
Die Fehlermeldung inklusive testwerte für die Konsole sieht dann folgendermaßen aus:
Geben Sie das Wort ein:Hallo
Geben Sie den Schlüssel ein: 5
Exception in thread "main" java.lang.NullPointerException
at Enigma.encrypt(Enigma.java:18)
at Inout.main(Inout.java:21)
Ich versuche jetzt seit Montag den Fehler zu finden, aber ich häcks nich mehr, vielleicht habt ihr einen Denkanstoß?
Vielen Dank schonmal
Ikarus