Buchstabe durch seinen Nachfolger ersetzen

Bitte aktiviere JavaScript!
In einer Zeichenkette wird jeder Buchstabe durch seinen Nachfolger ersetzt: A → B, B → C, C → D, …, Y → Z, Z → A. Die Methoden, die einen String in einem Rutsch in ein Array of Character und umgekehrt umwandeln, dürfen nicht verwendet werden.
Kann mir jemand weiterhelfen?

Danke im voraus.
 
Hm...den String in einer For-Schleife durchlaufen, und bei jeder Iteration in drei Teile-linker Teil, einzelnes Zeichen, rechter Teil-zerlegen. Den mittleren String (das einzelne Zeichen) nach Character konvertieren, inkrementieren, und den String wieder zusammenbauen. Überlauf von Z -> A abfangen.

So sollte das eigentlich funktionieren.
 
Hm...den String in einer For-Schleife durchlaufen, und bei jeder Iteration in drei Teile-linker Teil, einzelnes Zeichen, rechter Teil-zerlegen. Den mittleren String (das einzelne Zeichen) nach Character konvertieren, inkrementieren, und den String wieder zusammenbauen. Überlauf von Z -> A abfangen.

So sollte das eigentlich funktionieren.
Bin bei diesem Thema neu, deshalb fehlt mir der Ansatz. Wie würde es syntax technisch aussehen?
 
ist das nicht zu kompliziert gedacht?

Java:
String test = "ABCDE";
        String output = "";
        for(int i=0;i<test.length();i++) {
            char tmp = test.charAt(i);
            output+=(char) (tmp+1);
        }
        System.out.println(output);
Natürlich fehlen hier noch einiges :) aber denke so sollte das erlaubt sein!

LG
 
Ja, das ist einfacher, hatte die Methode nicht auf dem Schirm.

Aber jetzt hast du ihm die Hausaufgabe gemacht und den Lerneffekt versaut.
 
Des weiteren finde ich lernt man auch etwas wenn man sich Code von anderen anschaut ;)
Hm...ich weiß nicht. Man kann durchaus von anderer Leute Arbeit lernen, das kommt aber ganz auf die individuelle Lerneinstellung an. Damit sammelt man Wissen, jedoch kaum Erkenntnis. Gerade letztere halte ich gerade am Anfang jedoch für wichtiger. Die Methode charAt() hätte man (auf jedenfall der TS) gleich gefunden, wenn man mal geschaut hätte was die IDE einem bei String für Methoden anbietet. (Wie man sieht, habe ich das auch nicht gemacht ;) )
 
White_Fox da gebe ich dir recht :) Leider schaue ich auch zu wenig in die APIs :(
Warten wir einfach ab was if_schleife meint vielleicht ist es ja auch falsch :p
Also ich habe immer etwas davon wenn jemand eine Lösung Postet oder ich mir Lösungen an schaue :) denoch gebe ich dir weiterhin recht das nächste mal anders :p
 
Danke euch beiden für die Hilfe. @oscme ja es ist bissl ärgerlich wenn man die Lösung vorkriegt, ich werde mit intensiv damit auseinandersetzen um es wirklich zu verstehen.
 
Was mir jetzt noch fehlt ist, dies so zu machen, dass es bei einer Eingabe die Zeichenkette ausgibt, also bei "Julius Caesar" sollte "Kvmjvt Dbftbs" rauskommen. Ich werde das mal versuchen.
 
So ich habe das mit der Eingabe hinzugefügt. Wenn ich Julius Caeser eingebe kommt nur Kvmjvt , also das Leerzeichen wird garnicht beachtet und die darauffolgende Zeichen auch nicht.
Code:
import java.util.Scanner;

public class Zeichenkette {

    public static void main(String[] args) {
        
        String test = "";
        String output = "";
        
        System.out.println("Geben sie Buchstaben ein: ");
        Scanner in = new Scanner(System.in);                    // Eingabegerät hinzufügen
        test = in.next();   
    
        for(int i=0;i<test.length();i++) {
            char tmp = test.charAt(i);
            output+=(char) (tmp+1);
        }
        System.out.println(output);

    
    }

}
 
Nun ja .. jeder char kann ja durch eine Zahl repräsentiert werden (siehe ASCII-Tabelle ). Das ist ja überhaupt der Grund, warum du einfach +1 addieren kannst. Schau dir die Tabelle mal genau an (bei zB SP = space = Leerzeichen) und überleg warum ! ausgegeben wird. Das gleiche bei Z/z
 
Ein Zeichen ist für den Computer nur eine Zahl. Es gibt eine Tabelle, welcher Zahl welches Zeichen zugeordnet ist. Wenn du die Zahl immer weiter inkrementierst, dann kommen irgendwann auch andere Zeichen als Buchstaben.
 
Nun ja .. jeder char kann ja durch eine Zahl repräsentiert werden (siehe ASCII-Tabelle ). Das ist ja überhaupt der Grund, warum du einfach +1 addieren kannst. Schau dir die Tabelle mal genau an (bei zB SP = space = Leerzeichen) und überleg warum ! ausgegeben wird. Das gleiche bei Z/z
Ein Zeichen ist für den Computer nur eine Zahl. Es gibt eine Tabelle, welcher Zahl welches Zeichen zugeordnet ist. Wenn du die Zahl immer weiter inkrementierst, dann kommen irgendwann auch andere Zeichen als Buchstaben.
Ja, ich habe die Tabelle gefunden. Ich schätze mal, dass ich die beiden einzelnd abfragen muss evt. mit if-Abfrage.
 
Ich habe es hinbekommen, dass es bei einer Eingabe von "z" eine "a" ausgibt und bei einem Leerzeichen auch ein Leerzeichen ausgibt.
Nun ist es so, dass es zusätzlich noch das nächste Zeichen ausgibt also bei "z" gibt es "a" und "{" aus. Wahrscheinlich hat es was mit dem +1 zu tun?
Code:
        for(int i=0;i<test.length();i++) {
            
            if(test.charAt(i) == ' ') {
                output+=(char) (' ');
                
            }
            if(test.charAt(i) == 'z') {
                output+=(char) ('a');
            }
            char tmp = test.charAt(i);
            output+=(char) (tmp+1);
            

        }
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben