Geheimschrift

Status
Nicht offen für weitere Antworten.

TheDestroyer

Aktives Mitglied
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:


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));
		
		
	}
}
 
S

SlaterB

Gast
du nimmst die Länge des Strings, teilst sie durch 7, +1, dann weißt du die Anzahl der Zeilen,
z.B. 30/7+1 = 6

dann erstellst du ein 6x7-Array,
stopfst die ersten 7 Zeichen in die erste Zeile,
stopfst die zweiten 7 Zeichen in die zweite Zeile,
usw.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
Manello Geheimschrift Programm Java Basics - Anfänger-Themen 15

Ähnliche Java Themen

Neue Themen


Oben