Hi,
ich habe ein Problem:
Ich habe ein Program programmiert welches einen eingegeben Text verschlüsseln soll. Allerdings kommt es sobald ich den Text mit der Caesar Methode verschlüssle zu folgenden Fehler:
Die Buchstaben werden zwar verschlüsselt (und es kommt zu keiner Fehlermeldung), aber die Buchstaben werden falsch verschlüsselt.
Also eigentlich soll aus einem a ein f werden aber es wird ein d. Das ganze wird noch mysteriöser dadurch das alle Buchstaben entweder zu a,b,c,d oder e verschlüsselt werden. Also werden z.B. alle a, g, j,1 usw. zu d's.
Da der Fehler schwierig zu erklären ist habe ich das Program angehängt.
Ich vermute der Fehler liegt in der Schleife mit den vielen if's.
Ich würde mich auch darüber freuen, wenn ihr mir Tipps geben könntet wie ich Teile die funktionieren eleganter lösen könnte.
mfG Veraenderer
ich habe ein Problem:
Ich habe ein Program programmiert welches einen eingegeben Text verschlüsseln soll. Allerdings kommt es sobald ich den Text mit der Caesar Methode verschlüssle zu folgenden Fehler:
Die Buchstaben werden zwar verschlüsselt (und es kommt zu keiner Fehlermeldung), aber die Buchstaben werden falsch verschlüsselt.
Also eigentlich soll aus einem a ein f werden aber es wird ein d. Das ganze wird noch mysteriöser dadurch das alle Buchstaben entweder zu a,b,c,d oder e verschlüsselt werden. Also werden z.B. alle a, g, j,1 usw. zu d's.
Da der Fehler schwierig zu erklären ist habe ich das Program angehängt.
Ich vermute der Fehler liegt in der Schleife mit den vielen if's.
Ich würde mich auch darüber freuen, wenn ihr mir Tipps geben könntet wie ich Teile die funktionieren eleganter lösen könnte.
Java:
public class Verschluessel
{
String input;
public Verschluessel(String input1)
{
input=input1;
}
//Dreht den Text um
public void reverse () {
input=new StringBuffer(input).reverse().toString();
}
//Caesar Verfahren
public void caesar () {
int x=5;
String alphabetl="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
char [] alphabet=new char[alphabetl.length()];
alphabet=alphabetl.toCharArray();
char [] theText = new char [input.length ()];
theText=input.toCharArray();
char [] newalphabet=new char[alphabetl.length()];
System.out.println (alphabetl.length ());
for (int i=0; i<alphabetl.length(); i++) {
if ((i+x)<alphabetl.length()) {
newalphabet [i]=alphabet[i+x];
}
else {
newalphabet [i]=alphabet[i+x-alphabetl.length()];
}
}
System.out.println (theText);
for (int i=0; i<input.length();i++) {
if (theText[i]=='a') {
theText[i]=newalphabet[0];
System.out.println (newalphabet[0]);
}
if (theText[i]=='b') {
theText[i]=newalphabet[1];
System.out.println (newalphabet[1]);
}
if (theText[i]=='c') {
theText[i]=newalphabet[2];
System.out.println (newalphabet[2]);
}
if (theText[i]=='d') {
theText[i]=newalphabet[3];
System.out.println (newalphabet[3]);
}
if (theText[i]=='e') {
theText[i]=newalphabet[4];
System.out.println (newalphabet[4]);
}
if (theText[i]=='f') {
theText[i]=newalphabet[5];
System.out.println (newalphabet[5]);
}
if (theText[i]=='g') {
theText[i]=newalphabet[6];
System.out.println (newalphabet[6]);
}
if (theText[i]=='h') {
theText[i]=newalphabet[7];
}
if (theText[i]=='i') {
theText[i]=newalphabet[8];
}
if (theText[i]=='j') {
theText[i]=newalphabet[9];
}
if (theText[i]=='k') {
theText[i]=newalphabet[10];
}
if (theText[i]=='m') {
theText[i]=newalphabet[11];
}
if (theText[i]=='n') {
theText[i]=newalphabet[12];
}
if (theText[i]=='l') {
theText[i]=newalphabet[13];
}
if (theText[i]=='o') {
theText[i]=newalphabet[14];
}
if (theText[i]=='p') {
theText[i]=newalphabet[15];
}
if (theText[i]=='q') {
theText[i]=newalphabet[16];
}
if (theText[i]=='r') {
theText[i]=newalphabet[17];
}
if (theText[i]=='s') {
theText[i]=newalphabet[18];
}
if (theText[i]=='t') {
theText[i]=newalphabet[19];
}
if (theText[i]=='u') {
theText[i]=newalphabet[20];
}
if (theText[i]=='v') {
theText[i]=newalphabet[21];
}
if (theText[i]=='w') {
theText[i]=newalphabet[22];
}
if (theText[i]=='x') {
theText[i]=newalphabet[23];
}
if (theText[i]=='y') {
theText[i]=newalphabet[24];
}
if (theText[i]=='z') {
theText[i]=newalphabet[25];
}
if (theText[i]=='A') {
theText[i]=newalphabet[26];
}if (theText[i]=='B') {
theText[i]=newalphabet[27];
}if (theText[i]=='C') {
theText[i]=newalphabet[28];
}if (theText[i]=='D') {
theText[i]=newalphabet[29];
}if (theText[i]=='E') {
theText[i]=newalphabet[30];
}if (theText[i]=='F') {
theText[i]=newalphabet[31];
}if (theText[i]=='G') {
theText[i]=newalphabet[32];
}if (theText[i]=='H') {
theText[i]=newalphabet[33];
}if (theText[i]=='I') {
theText[i]=newalphabet[34];
}if (theText[i]=='J') {
theText[i]=newalphabet[35];
}if (theText[i]=='K') {
theText[i]=newalphabet[36];
}if (theText[i]=='L') {
theText[i]=newalphabet[37];
}if (theText[i]=='M') {
theText[i]=newalphabet[38];
}if (theText[i]=='N') {
theText[i]=newalphabet[39];
}if (theText[i]=='O') {
theText[i]=newalphabet[40];
}if (theText[i]=='P') {
theText[i]=newalphabet[41];
}if (theText[i]=='Q') {
theText[i]=newalphabet[42];
}if (theText[i]=='R') {
theText[i]=newalphabet[43];
}if (theText[i]=='S') {
theText[i]=newalphabet[44];
}if (theText[i]=='T') {
theText[i]=newalphabet[45];
}if (theText[i]=='U') {
theText[i]=newalphabet[46];
}if (theText[i]=='V') {
theText[i]=newalphabet[47];
}if (theText[i]=='W') {
theText[i]=newalphabet[48];
}if (theText[i]=='X') {
theText[i]=newalphabet[49];
}if (theText[i]=='Y') {
theText[i]=newalphabet[50];
}if (theText[i]=='Z') {
theText[i]=newalphabet[51];
}if (theText[i]=='1') {
theText[i]=newalphabet[52];
}if (theText[i]=='2') {
theText[i]=newalphabet[53];
}if (theText[i]=='3') {
theText[i]=newalphabet[54];
}if (theText[i]=='4') {
theText[i]=newalphabet[55];
}if (theText[i]=='5') {
theText[i]=newalphabet[56];
}if (theText[i]=='6') {
theText[i]=newalphabet[57];
}if (theText[i]=='7') {
theText[i]=newalphabet[58];
}if (theText[i]=='8') {
theText[i]=newalphabet[59];
}if (theText[i]=='9') {
theText[i]=newalphabet[60];
}if (theText[i]=='0') {
theText[i]=newalphabet[61];
}
}
System.out.println (theText);
input="".valueOf (theText);
}
public String output () {
return input;
}
}
mfG Veraenderer