Buchstabe durch seinen Nachfolger ersetzen

Bitte aktiviere JavaScript!
Besser wäre, du sortierst erstmal ALLE Zeichen aus, die du unangetastet lassen willst.

Edit: Ungefähr so:
Java:
if((c >= a && c <= z) || (c >= a && c <= z)){
    //increment and handle overflow
}
 
Zuletzt bearbeitet:
if((c >= a && c <= z) || (c >= a && c <= z)){ //increment and handle overflow }
du meintest sicherlich:
Java:
if((c >= a && c <= z) || (c >= A && c <= Z)){
    //increment and handle overflow
}
Das ganze meinte ich ja was oben bei meinem Code noch fehlen würde :)
Freut mich aber immer wieder wie nett man hier geholfen bekommt :) "macht bitte alle weiter so" :)

LG
 
Besser wäre, du sortierst erstmal ALLE Zeichen aus, die du unangetastet lassen willst.

Edit: Ungefähr so:
Java:
if((c >= a && c <= z) || (c >= a && c <= z)){
    //increment and handle overflow
}
du meintest sicherlich:
Java:
if((c >= a && c <= z) || (c >= A && c <= Z)){
    //increment and handle overflow
}
Das ganze meinte ich ja was oben bei meinem Code noch fehlen würde :)
Freut mich aber immer wieder wie nett man hier geholfen bekommt :) "macht bitte alle weiter so" :)

LG
Hey, erstmal danke für euer Beiträge. Ich weiß, ich nerve :/. Ich habe das mit der if-Abfrage probiert.
Eclipse sagt, dass es sich bei der if-Abfrage um einen "dead code" handelt,
Desweiteren wird bei der Abfrage sortiert welche Zeichen man nicht anfassen will. ?!
Wie kriege ich es mit dem Overflow hin. Also , nach einem "z" soll ein "a" ausgegeben werden und nach einem
Leerzeichen, ein Leerzeichen ausgeben. Ich hatte ja vorher versucht die einzelnen Zeichen, also "z" und Leerzeichen abzufragen und
und das entsprechende Zeichen auszugeben, was ja nur teilweise geklappt hat.
Code:
        String test = "";
        String output = "";
        
        System.out.println("Geben sie Buchstaben ein: ");
        Scanner in = new Scanner(System.in);                    // Eingabegerät hinzufügen
        test = in.nextLine();   
    
        for(int i=0;i<test.length();i++) {
            
            if(('c' >= 'a' && 'c' <= 'z') || ('c' >= 'A' && 'c' <= 'Z')){         
                char tmp = test.charAt(i);
                output+=(char) (tmp+1);
            }

        }   
        System.out.println(output);
 
@ocsme
Jup...das meinte ich.

@ifschleife
Versuche mal, etwas vom Code wegzukommen. Lerne zu abstrahieren und dein Problem erstmal in Pseudocode zu formulieren. Du willst Java lenen. Aber Programmieren zu können und eine Programmiersprache zu können sind zwei völlig verschiedene Dinge, und die echte Kunst ist ersteres. Längst nicht jeder beherrscht diese, egal wieviele Programmiersprachen er kennt (oder zu kennen meint).

Daher: Du hast genau zwei Mengen von Zeichen: Die Menge der Zeichen, die inkrementiert werden soll und die Menge der Zeichen, die du nicht anrühren willst.

Was du machen könntest (beachte den Konjunktiv!):
Für jeden einzelnen, in der Zeichentabelle vorkommenden, Eintrag eine eigene If-Abfrage schreiben. If(c == 'a')...; If(c == 'b')...
Beachte dabei, daß du diese If-Abfragen nicht nur für lateinische Buchstaben, Zahlen und die gängigen Sonderzeichen beachten müßtest. Das wäre zwar schon viel, aber dann kämen noch das griechische und das kyrillische Alphabet hinzu. Außerdem das arabische, jüdische, sowie die verschiedenen chinesischen und japanischen Alphabete hinzu. Plus das, was der UTF16-Standard sonst noch so bereithält.

Es würde theoretisch zwar gehen, aber du würdest einen riesigen, unüberschaubaren Codewust produzieren. (Wobei mich an dieser Stelle interessieren würde, ob die JVM daß auch so langwierig ausführen würde oder das clever optimiert. Egal, andere Baustelle.)
Im Prinzip ist das, was ich im vorherigen Absatz geschrieben habe, jedoch genau das was du mit der einzelnen Leerzeichenabfrage im Post weiter oben gemacht hast. Versuche mal, dein Problem verbal zu lösen. So ganz ohne Javacode.
 
Ich weiß, ich nerve :/
NEIN du Nervst nicht!!!
Das ist vollkommen normal beim Anfang. Das große Problem ist wie White_Fox schon sagte, man muss erst einmal versuchen das Problem abstrahieren zu können.

Versuch es nochmal und Poste so oft du willst hier dein voran kommen :)

So aber bevor der/die ifschleife jetzt verzweifelt, schau mal im Thema hier auf Seite 1 ganz unten hast du einen netten Code geschrieben mit deinem Leerzeichen etc. das setze mit dem von White_Fox zusammen dann sollte es klappen :)

LG
 
So ich glaube ich habe es hingekriegt.
Code:
import java.util.Scanner;

public class Test {

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

        }
        System.out.println(output);
    }
}
Danke für euren Support . Ihr seid cool :)
 
Das kannst du dir sparen es so zu schreiben.
Einfach so:
Code:
output+=" "
Habe das Programm von dir noch nicht ausprobiert aber fehlt da nicht noch die Abfrage nach dem großen Z.
Was kommt denn nach dem großen Z ist da nicht auch ein Sonderzeichen?

LG
Das mit dem großen Z habe ich nachträglich gemacht und danke für den Tipp

LG
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben