Wer kann mir helfen bei dieser Java String Builder Aufgabe fast richtig aber noch nicht ganz (Siehe Foto)?

 - (Computer, Programmieren, Informatik)

4 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Wenn du aus dem StringBuilder Zeichen entfernst, rücken die späteren Zeichen vor und der Index verschiebt sich. Das heißt, bei einer Liste von fünf Buchstaben beispielsweise, wäre der Index anfangs zwar im Intervall von 0 bis 4, doch wenn das erste Zeichen entfernt wird, nur noch bei 0 bis 3.

Da du von vorne nach hinten iterierst, gibt es nach Entfernen des ersten yak die Indizes nicht mehr, die du beim zweiten yak versuchst, zu entfernen. Laufe rückwärts durch den String.

ok danke das hab ich nicht gewusst das hab ich nicht gewusst ich versuche es rückwärts

0

Mein Tipp wäre, dass es probleme gibt weil du das ganze im Stringbuilder löscht, aber im normalen String überprüfst. Also mal in dem if statment str.charAt(...) durch t1.charAt(...)

Und wenn du was aus dem String löscht auch den schleifenindex entsprechend modifizieren. In der schleifenbedinung brauchst du dann auch t1

Woher ich das weiß:Studium / Ausbildung – Keine Freunde, keine Hobbys - dafür Computer und Informatik

Wie die anderen schon sagen... Durch das Löschen verschieben sich die Indizes. Daher solltest du von hinten nach vorne arbeiten. Z.b. so...

for(int i = str.length()-3; i >= 0;i--){
        if(str.charAt(i) == 'y' && str.charAt(i+2) == 'k'){
            t1 = t1.delete(i,i+3);
        }
    }
    b = t1.toString();
    System.out.println(b);
    }

danke bro 👍🏻

1

Was möchtest Du wissen?