Separator zwischen allen Zeichen eines Strings einfügen

marcooooo

Mitglied
1605371496017.png
Hallo, ich muss dieses Beispiel erledigen und komme nicht weiter bzw es fehlt mir schon allein der Ansatz wie ich das lösen kann.
private static void addSeparator(String text, char separator) {}
das habe ich bereits auch gegeben
 
Was hast Du Dir denn bisher als Lösungsansatz gedacht? Wie würdest Du das manuell machen?
 
manuell hast du kein Substring. Ignoriere mal Java und beschreibe, wie du es mit einen Blatt Papier & Stift lösen würdest.
 
weiß halt nicht wie ich das beschreiben soll halt wenn es zwei variabeln gibt degnau dazwischen kommt dann das zeichen:/
Du nimmst einfach Buchstabe für Buchstabe des Textes und baust daraus die Lösung. Dazwischen kommt jeweils der Separator. Die Lösung ist zuerst leer. Dann Buchstabe 1, dann Separator, dann Buchstabe 2, dann Separator, usw, solange bis du am Ende des Textes angekommen bist.
 
jetzt habe ich mittlerrweile das:/
Java:
private static void addSeparator(String text, char separator) {
    String sep = String.valueOf(separator);
    for(int i = 0; i<= text.length()-1;i++){
        System.out.print(text.charAt(i)+sep);
    }
    System.out.println();
}
 
Ich weiss, ich wiederhole mich: Beschreibe es doch erst einmal, wie jemand mit Stift und Papier vorgehen soll.
Und diese Beschreibung musst Du so gut schreiben, dass jeder, der genau diesen Anweisungen folgt, zu dem richtigen Ergebnis kommt, auch wenn er die eigentliche Aufgabe nicht kennt...

ich habe halt den Verdacht, dass Du generell noch keine konkrete Lösungsidee hast und dass dieses mit Java Code hantieren da eher eine zusätzliche Hürde darstellt.
 
ja also am ende soll er ja nicht mehr dran sein also wenn mit einer if schleife aber wie genau weiß ich dann nicht hm
Naja, das wirst du ja wohl hinkriegen, wenn du schon so weit gekommen bist.

Du hast es ja schon geschrieben: "Wenn er am Ende ist, dann nicht..". Das kannst du auch umdrehen nach "solange er nicht am Ende ist, dann.."
 
Naja, das wirst du ja wohl hinkriegen, wenn du schon so weit gekommen bist.

Du hast es ja schon geschrieben: "Wenn er am Ende ist, dann nicht..". Das kannst du auch umdrehen nach "solange er nicht am Ende ist, dann.."
hm ich weiß nicht ganz was für einen befehl ich nehmen soll um zu sagen wenn es das letze ist habe daran gedacht if (sep == .....) oder if(sep<=text.length) oder so
 
Dann erläutere doch einmal die for Schleife, die Du bisher geschrieben hast. Was hast Du denn da alles im Detail?
Vielleicht hilft es Dir ja auf die Sprünge, wenn Du da einmal im Detail schaust, was Du für eine Zählvariable hast und was da die Abbruchbedingung ist ...
 
So als Tipp: Du musst den Separator ja nicht anhängen, sondern kannst ihn einfach nur ausgeben.
Java:
// Anstatt von deinem Code
private static void addSeparator(String text, char separator) {
    String sep = String.valueOf(separator);
    for(int i = 0; i<= text.length()-1;i++){
        System.out.print(text.charAt(i)+sep);
    }
    System.out.println();
}

// Macht genau das gleiche nur etwas übersichtlicher
private static void addSeparator(String text, char separator) {

    for(int i = 0; i <= text.length()-1; i++){
        System.out.print(text.charAt(i)); // gibt ein Zeichen von text aus
        System.out.print(separator); // und danach den Separator
    }
                      
    System.out.println();
}
 
So als Tipp: Du musst den Separator ja nicht anhängen, sondern kannst ihn einfach nur ausgeben.
Java:
// Anstatt von deinem Code
private static void addSeparator(String text, char separator) {
    String sep = String.valueOf(separator);
    for(int i = 0; i<= text.length()-1;i++){
        System.out.print(text.charAt(i)+sep);
    }
    System.out.println();
}

// Macht genau das gleiche nur etwas übersichtlicher
private static void addSeparator(String text, char separator) {

    for(int i = 0; i <= text.length()-1; i++){
        System.out.print(text.charAt(i)); // gibt ein Zeichen von text aus
        System.out.print(separator); // und danach den Separator
    }
                    
    System.out.println();
}
 
[CODE lang="java" title="if (text.length() != 1) { for (int i = 0; i <= text.length() - 1; i++) { System.out.print(text.charAt(i)); // gibt ein Zeichen von text aus System.out.print(separator); // und danach den Separator } System.out.println(); } }"]if (text.length() != 1) {
for (int i = 0; i <= text.length() - 1; i++) {
System.out.print(text.charAt(i)); // gibt ein Zeichen von text aus
System.out.print(separator); // und danach den Separator
}

System.out.println();
}
}[/CODE]

hab jetzt so gedacht, aber klappt auch nicht:/...
 
Was hast du dir dabei gedacht?

Schau dir doch die Schleife an:

Du gibst ein Zeichen von Text aus.
Du gibst einen Separator aus.
Du möchtest den Separator nur ausgeben, wenn es nicht der letzte Buchstabe von Text gewesen ist.
ok habs jetzt


Java:
private static void addSeparator(String text, char separator) {


        for (int i = 0; i <= text.length() - 1; i++) {

            System.out.print(text.charAt(i)); // gibt ein Zeichen von text aus

            if (i != text.length() - 1) {
                System.out.print(separator); // und danach den Separator
            }
        }
        System.out.println();
    }
 
Ich will Dich ja nicht schocken, aber das entspricht m. E. nicht der Aufgabenstellung. Dort steht "Zum Schluss geben Sie den veränderten String mittels System.out.println() auf der Konsole aus" (NB: dabei muss man String allg. als Zeichenkette interpretieren, da Objekte der Klasse String nicht veränderbar sind 🙂).
 

Zurück
Oben