Hallo, habe ein Aufgabe, welche aus einem Text einen Geheimcode erstellt. Und zwar nach folgendem Prinzip:
In einem Schema (Matrix mit z.B. 7 Spalten) werden alle Buchstaben des Klartextes zeilenweise eingetragen, wobei vorher alle Buchstaben in Kleinbuchstaben umgewandelt werden und alle anderen Zeichen ersatzlos entfernt werden (z.B. Leerzeichen, Ziffern, Punkte).
Die Matrix wird spaltenweise ausgelesen und liefern den Geheimtext (zur äußeren Kennzeichnung wird er in Großbuchstaben und in 5-er Gruppen notiert).
Beispiel: Klartext: Reden ist Silber, Schweigen ist Gold
Schema: eine Matrix mit 7 Spalten
r e d e n i s
t s i l b e r
s c h w e i g
e n i s t g o
l d
Geheimtext: RTSEL ESCND DIHIE LWSNB ETIEI GSRGO .
Die Aufgabenstellung sieht so genau aus:
Schreiben Sie in einer Klasse Chiffre folgende Methoden:
reduce(s), die alle Nicht-Buchstaben aus der Zeichenkette s entfernt und diese reduzierte Zeichenkette zurückgibt,
createMatrix(c,s), die eine Matrix mit c Spalten erzeugt (die Zeilenanzahl muss aus der Zeichenkette s bestimmt werden), die Buchstaben aus s dort zeilenweise einträgt und die Matrix zurückgibt.
getChiffre(m), liest die Matrix spaltenweise aus, formatiert diesen String in Großbuchstaben und 5-er Gruppen und gibt diesen zurück.
Vereinbaren Sie im main die zu chiffrierende Zeichenkette und lesen Sie die Spaltenanzahl c ein.
Die Matrix soll im main deklariert werden (mit char[][] m) und in der Methode createMatrix soll der Speicherplatz bereitgestellt werden. Die Übergaben sollen mit Rückgabewert bzw. Parametern erfolgen wie oben beschrieben.
Kann mir jemand sagen wie ich jetzte genau eine Matrix erstelle, sodass das in etwa so ausschaut wie oben, sprich wie kann ich es in die Methode schreiben, sodass sie mir alles in 7 Spalten ist.
Hier mein bisheriger Code:
In einem Schema (Matrix mit z.B. 7 Spalten) werden alle Buchstaben des Klartextes zeilenweise eingetragen, wobei vorher alle Buchstaben in Kleinbuchstaben umgewandelt werden und alle anderen Zeichen ersatzlos entfernt werden (z.B. Leerzeichen, Ziffern, Punkte).
Die Matrix wird spaltenweise ausgelesen und liefern den Geheimtext (zur äußeren Kennzeichnung wird er in Großbuchstaben und in 5-er Gruppen notiert).
Beispiel: Klartext: Reden ist Silber, Schweigen ist Gold
Schema: eine Matrix mit 7 Spalten
r e d e n i s
t s i l b e r
s c h w e i g
e n i s t g o
l d
Geheimtext: RTSEL ESCND DIHIE LWSNB ETIEI GSRGO .
Die Aufgabenstellung sieht so genau aus:
Schreiben Sie in einer Klasse Chiffre folgende Methoden:
reduce(s), die alle Nicht-Buchstaben aus der Zeichenkette s entfernt und diese reduzierte Zeichenkette zurückgibt,
createMatrix(c,s), die eine Matrix mit c Spalten erzeugt (die Zeilenanzahl muss aus der Zeichenkette s bestimmt werden), die Buchstaben aus s dort zeilenweise einträgt und die Matrix zurückgibt.
getChiffre(m), liest die Matrix spaltenweise aus, formatiert diesen String in Großbuchstaben und 5-er Gruppen und gibt diesen zurück.
Vereinbaren Sie im main die zu chiffrierende Zeichenkette und lesen Sie die Spaltenanzahl c ein.
Die Matrix soll im main deklariert werden (mit char[][] m) und in der Methode createMatrix soll der Speicherplatz bereitgestellt werden. Die Übergaben sollen mit Rückgabewert bzw. Parametern erfolgen wie oben beschrieben.
Kann mir jemand sagen wie ich jetzte genau eine Matrix erstelle, sodass das in etwa so ausschaut wie oben, sprich wie kann ich es in die Methode schreiben, sodass sie mir alles in 7 Spalten ist.
Hier mein bisheriger Code:
Code:
package Übung09;
public class Chiffre {
public static String buchstaben = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
public static String reduce(String s) {
String str = "";
for (int i = 0; i < s.length(); i++) {
for (int j = 0; j < buchstaben.length(); j++) {
if (s.charAt(i) == buchstaben.charAt(j)) {
str = str + s.charAt(i);
}
}
}
return str.toLowerCase();
}
public static String createMatrix(String c, String s){
for (int i = 0; i <8; i++){
for (int j = 0; j<s.length();j++){
reduce(s);
}
}
return s;
}
public static void main(String args[]) {
String s = "Reden ist Silber, Schweigen ist Gold ";
System.out.println(s);
System.out.println("Reduziert:\n" + reduce(s));
}
}