Arbeitsblätter und Lösungen Hr. Kimmig
package ab32;
import java.io.IOException;
import ab31.Reader;
import ab33.Writer;
public class Verschluesseln {
public static String verschluesseln(String text,int weite) {
// maximal 26 Zeichen weit verschieben
weite %= 26;
// falls negativ
if(weite<0) weite += 26;
String ergebnis = "";
// gehe alle Zeichen im String durch
for(int i = 0 ; i<text.length() ; i++) {
// nehme das einzelne Zeichen an der Stelle i
char zeichen = text.charAt(i);
// wandle das in den ASCII-Code um
int zeichenASCII = (int)zeichen;
// wenn Großbuchstabe (A=65, Z=90)
if(zeichenASCII>=65 && zeichenASCII<=90) {
// verschiebe das Zeichen
int neuASCII = zeichenASCII + weite;
// wenn zu weit, beginne wieder bei "A"
if(neuASCII>90) neuASCII -= 26;
// aus dem ASCII-Code wieder ein Zeichen machen
char neu = (char) neuASCII;
// ausgeben.
ergebnis += neu;
}
// wenn Kleinbuchstabe (a=97, z=122)
else if(zeichenASCII>=97 && zeichenASCII<=122) {
// verschiebe das Zeichen
int neuASCII = zeichenASCII + weite;
// wenn zu weit, beginne wieder bei "a"
if(neuASCII>122) neuASCII -= 26;
// aus dem ASCII-Code wieder ein Zeichen machen
char neu = (char) neuASCII;
// ausgeben
ergebnis += neu;
}
// wenn kein Buchstabe
else {
// gib das unveränderte Zeichen aus
ergebnis += zeichen;
}
}
return ergebnis;
}
public static void main(String[] args) throws IOException {
// lese die Datei ein
String text = Reader.readFile("src/ab31/input.txt");
// verschlüssle den String
String enc = verschluesseln(text, 2);
// speichere die Datei
Writer.writeFile("src/ab33/output.txt", enc);
}
}