Cäsar Aufgabe

Leoniee

Mitglied
Hallo, ich weiß, dass dies schon oft hier im forum gefragt wurde, aber ich kann das nicht auf meine Aufgabe übersetzen. bin im ersten Semester und wir haben letzte woche mit Java Angefangen und ich komme absolut nicht klar im Moment, über hilfe würd ich mich sehr freuen.

Die Maske hier wurde so gegeben ich muss nur den richtigen code einfügen, aber alles was ich bisher versuchte war falsch, ich bin echt am verzweifeln.

Es sind folgende 2 Klassen gegeben:


Java:
package prog2.project1.hellojava;


/**
 * Dieses Interface spezifiziert die Caesar-Verschlüsselung mit beliebigem
 * Schift {@code shift}. Dabei wird jedes Zeichen im Alphabet durch das ersetzt, dass {@code shift}
 * Stellen weiter steht. Am Ende des Alphabets wird von vorne weitergezählt.
 * 
 * Weitere Erläuterung und Implementierungsdetails auf <a href=
 * 'https://de.wikipedia.org/wiki/Caesar-Verschl%C3%BCsselung'>Wikipedia</a>
 * 
 */


public interface CaesarCipher {

    /**
     * Diese Method verschlüsselt den Klartext {@code plainText}, in dem sie jeden Buchstaben
     * durch den ersetzt, der {@code shift} Stellen weiter im Alphabet
     * steht.
     * 
     * @param plainText
     *            Der zu verschlüsselnde Text. Darf nur die Zeichen a-z und A-Z
     *            enthalten und darf nicht {@code null} sein.
     * @param shift
     *            Die Anzahl der Positionen um die geschiftet wird.
     * @return Den verschlüsselten Text.
     */
    public String encrypt(String plainText, int shift);

    /**
     * Diese Methode entschlüsselt einen Geheimtext.
     * 
     * @param encryptedText
     *            Der zu entschlüsselnde Text. Darf nur die Zeichen a-z und A-Z
     *            enthalten und darf nicht {@code null} sein.
     * @param shift
     *            Die Anzahl der Positionen um die beim Verschlüsseln geschiftet
     *            wurde.
     * @return Den entschlüsselten Text.
     */
    public String decrypt(String encryptedText, int shift);

}


und diese hier:

Java:
package prog2.project1.hellojava;


/**
 * Diese Klasse implementiert die Caesar-Verschlüsselung.
 */

public class CaesarCipherImpl implements CaesarCipher {
	
	public String encrypt(String plainText, int shift) {
		//TODO Implementieren Sie diese Methode.
		throw new UnsupportedOperationException("Noch nicht implementiert.");
	}
	
	public String decrypt(String encryptedText, int shift) {
		//TODO Implementieren Sie diese Methode.
		throw new UnsupportedOperationException("Noch nicht implementiert.");
	}

}
 
Zuletzt bearbeitet:
S

SlaterB

Gast
Cäsar für sich ist ein gewisser Fachbegriff, insbesondere eine typische Uni-Aufgabe, was es hier als Thementitel besonders markant macht
Caesar-Verschlüsselung ? Wikipedia
aber deine durch Code genannten Methoden haben damit nichts zu tun, wie kommst du zu diesem Thementitel?

drei unabhängige Dinge gleichzeitig zu fragen ist auch nicht allzu sinnvoll, kannst dann ja zumindest eins davon als erstes aussuchen..

ggT findet man in Sekunden 30x in Java perfekt implementiert mit 'ggt java' usw. in Suchmaschinen,
den Rest quasi auch, soweit bekannt/ noch andere Fragen dazu?

wie dein Uni-Stand ist ist übrigens recht egal,
du kannst jederzeit mit einem Lehrbuch von 0 anfangen und diese Aufgaben ca. nach 1-2 Wochen bearbeiten
 

Leoniee

Mitglied
hey, srry habe es grade korrigiert. Habe mich in der Datei verklickt, jetzt stimmt der code oben. Ich habe schon viel versucht, aber andauernd kriege ich Fehler raus, fühl mich einfach grad total überfordert, habe mich schon 3 tage in "java ist auch nur eine insel reingelesen" aber die aufgabe ist mir zu komplex zum fassen.:bahnhof:
 

Volvagia

Top Contributor
Da steht noch immer nicht, was du versucht hast.
Ich würde zuerst eine private Methode mit der Signatur String shift((String input | char[] input), int steps) definieren. encrypt ruft shift mit 3 auf, decrypt mit (Untersützte Zeichen - 3). Ich nehme an das ist 26 - 3.

Dann erstelle eine Liste was gemacht werden muss:

Code:
String zu Char-Array (Strings sind immuntable)
Eine for, die jeden Char durchgeht und in dessen Inhalt verarbeitet wird.
	Ein trinärer Operator, der c - steps nimmt sofern c - steps >= 'a'/'A' ist oder c + (Unterstützte Zeichen) - steps
Das Zusammenfügen zu einen String (valueOf)
Die Rückgabe.

Bei c + Unterstüzte Zeichen bin ich mir nicht ganz sicher, vielleicht ist es auch - oder + 1. Aber das kannst du ja ausprobieren.
 

Neue Themen


Oben