Hallo nochmal,
ich komme bei folgender Aufgabe nicht weiter:
Schreiben Sie ein Programm, welches eine (als String) gegebene Nachricht mit diesem Verschlüsselungsverfahren
verschlüsselt und wieder entschlüsselt. Geben Sie die ursprüngliche Nachricht,
den Geheimtext und den bei der Entschlüsselung erhaltenen Klartext in der Konsole aus.
Nutzen Sie hierzu das oben gegebene Geheimalphabet, welches Sie wie folgt im Code als 2x44-
char-Array ausdrücken können.
Unten der Code, wo ich mir folgendes gedacht habe. Zuerst habe ich den String in ein char array umgewandelt. Dann wollte ich mit der Doppelschleife die Indizes ermitteln, an welcher die jeweiligen Buchstaben aus schhluessel [0] stehen, also quasi die Stellen am 1.Array. Der Gedanke dahinter ist, da ich ja weiß an welcher Stelle die Buchstaben aus dem Geheimalphabet stehen ( hier schluessel[1]) dass ich mit Hilfe der ermittelten Indizes weiß, welche Buchstaben verschlüsselt werden müssen und welche die dazugehörigen Geheimbuchstaben sind. Wie ich das machen will, muss ich mir noch überlegen.
Das Problem ist folgendes: Eigentlich sollte ja z.B. beim Wort "Hallo" die if-Schleife bei wort[0]==schluessel[0][7] greifen, und die 7 somit unter index[0] abgespeichert werden. Allerdings wird an jeder Stelle des index-arrays nur die Zahl 0 abgespeichert und ich verstehe nicht warum?
ich komme bei folgender Aufgabe nicht weiter:
Schreiben Sie ein Programm, welches eine (als String) gegebene Nachricht mit diesem Verschlüsselungsverfahren
verschlüsselt und wieder entschlüsselt. Geben Sie die ursprüngliche Nachricht,
den Geheimtext und den bei der Entschlüsselung erhaltenen Klartext in der Konsole aus.
Nutzen Sie hierzu das oben gegebene Geheimalphabet, welches Sie wie folgt im Code als 2x44-
char-Array ausdrücken können.
Unten der Code, wo ich mir folgendes gedacht habe. Zuerst habe ich den String in ein char array umgewandelt. Dann wollte ich mit der Doppelschleife die Indizes ermitteln, an welcher die jeweiligen Buchstaben aus schhluessel [0] stehen, also quasi die Stellen am 1.Array. Der Gedanke dahinter ist, da ich ja weiß an welcher Stelle die Buchstaben aus dem Geheimalphabet stehen ( hier schluessel[1]) dass ich mit Hilfe der ermittelten Indizes weiß, welche Buchstaben verschlüsselt werden müssen und welche die dazugehörigen Geheimbuchstaben sind. Wie ich das machen will, muss ich mir noch überlegen.
Das Problem ist folgendes: Eigentlich sollte ja z.B. beim Wort "Hallo" die if-Schleife bei wort[0]==schluessel[0][7] greifen, und die 7 somit unter index[0] abgespeichert werden. Allerdings wird an jeder Stelle des index-arrays nur die Zahl 0 abgespeichert und ich verstehe nicht warum?
Java:
char[][] schluessel = {
{
'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', 'ä', 'ö', 'ü', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ' ', '.', ',', '!', '?',
},
{
'?', '!', ',', '.', ' ', '9', '8', '7', '6', '5', '4', '3', '2', '1', '0', 'ü', 'ö', 'ä', 'z', 'y', 'x', 'w',
'v', 'u', 't', 's', 'r', 'q', 'p', 'o', 'n', 'm', 'l', 'k', 'j', 'i', 'h', 'g', 'f', 'e', 'd', 'c', 'b', 'a',
},
};
String text= "hallo";
char [] wort = text.toCharArray();
int [] index = new int [wort.length];
for (int t=0; t<wort.length;t++) {
for (int z=0; z<schluessel.length;z++) {
if (wort [t]==schluessel[0][z]) {
index[t]=z;
}
}
}
System.out.println(Arrays.toString(index));