Hallo guten Abend zusammen,
ich sitze jetzt leider schon eine Weile an einem Code für einen Verschlüsselungsalgorithmus, bei dem ich jeden Buchstaben mit seinem Nachfolger tauschen soll, also aus A -> B, a -> b.
Das hatte ich soweit hinbekommen hier mal mein code bis jetzt :
public static void main(String[] args) {
//Aufrufen des Scanners
Scanner in = new Scanner(System.in);
//Variablen Deklaration
String eingabe;
String ausgabe = ""; //leerer String
//Benutzereingabe
System.out.println("Bitte geben Sie eine Zeichenkette ein: ");
eingabe = in.nextLine();
for(int zeichenZaehler = 0; zeichenZaehler < eingabe.length(); zeichenZaehler++) {
char neuerString = eingabe.charAt(zeichenZaehler);
//(char) für Cast operator das das folgende in diesen Typ umgewandelt werden soll
ausgabe = ausgabe + (char) (neuerString + 1);
}
System.out.println(ausgabe);
in.close();
}//ende von main
}//ende von Verschluesseln
Doch beim Testen ist mir etwas aufgefallen, nämlich wenn ich ein Z oder z eingebe dann kommt entweder [ { als Ausgabe, und ich verstehe nicht wie ich das ändern kann. Kleine idee: mit if(neuerString == 'Z') dann mit einem Syso == 'A', aber das hat bei mir nicht geholfen die anderen wurden immer noch mit ausgeben. Achja und wenn ich das Leerzeichen mache kommt immer ein '!' was ganz logisch ist, ist ja auch der Nachfolger, aber ich verstehe nicht wie ich denn diese Ausnahmen mache das es eben genau bei den Zeichen nicht passiert.
freue mich über jegliche Hilfe oder gedenkanstöße!
schönen Abend
ich sitze jetzt leider schon eine Weile an einem Code für einen Verschlüsselungsalgorithmus, bei dem ich jeden Buchstaben mit seinem Nachfolger tauschen soll, also aus A -> B, a -> b.
Das hatte ich soweit hinbekommen hier mal mein code bis jetzt :
public static void main(String[] args) {
//Aufrufen des Scanners
Scanner in = new Scanner(System.in);
//Variablen Deklaration
String eingabe;
String ausgabe = ""; //leerer String
//Benutzereingabe
System.out.println("Bitte geben Sie eine Zeichenkette ein: ");
eingabe = in.nextLine();
for(int zeichenZaehler = 0; zeichenZaehler < eingabe.length(); zeichenZaehler++) {
char neuerString = eingabe.charAt(zeichenZaehler);
//(char) für Cast operator das das folgende in diesen Typ umgewandelt werden soll
ausgabe = ausgabe + (char) (neuerString + 1);
}
System.out.println(ausgabe);
in.close();
}//ende von main
}//ende von Verschluesseln
Doch beim Testen ist mir etwas aufgefallen, nämlich wenn ich ein Z oder z eingebe dann kommt entweder [ { als Ausgabe, und ich verstehe nicht wie ich das ändern kann. Kleine idee: mit if(neuerString == 'Z') dann mit einem Syso == 'A', aber das hat bei mir nicht geholfen die anderen wurden immer noch mit ausgeben. Achja und wenn ich das Leerzeichen mache kommt immer ein '!' was ganz logisch ist, ist ja auch der Nachfolger, aber ich verstehe nicht wie ich denn diese Ausnahmen mache das es eben genau bei den Zeichen nicht passiert.
freue mich über jegliche Hilfe oder gedenkanstöße!
schönen Abend