CodeGym
Aktion
Lernen
Kurse
Aufgaben
Umfragen & Quizze
Spiele
Hilfe
Zeitplan
Community
Nutzer
Forum
Chat
Artikel
Erfolgsgeschichten
Aktivität
Bewertungen
Abonnements
Helles Design
Frage
  • Bewertungen
  • Über uns
Start
Jetzt lernen
Jetzt lernen
  • Alle Fragen
CodeGym/Hilfe bei Java-Aufgaben/Second Requirement is invalid.. why
Mia
Level 7
Sandstedt
  • 24.05.20
  • 544Aufrufe
  • 1Kommentar

Second Requirement is invalid.. why

Frage zur Aufgabe R oder L
Java Syntax,  Level 7,  Lektion 9
In Diskussion


1. Erstelle eine Liste von Wörtern und fülle sie selbst aus.
2. Die korrigieren-Methode muss:
2.1. alle Wörter aus der Liste entfernen, die den Buchstaben „r“ enthalten.
2.2. alle Wörter duplizieren, die den Buchstaben „l“ enthalten.
2.3. wenn ein Wort sowohl „r“ als auch „l“ enthält, dann machen wir nichts.
2.4. alle anderen Wörter unangetastet lassen.

Zum Beispiel:
Rose
Leier
Liebe

Ausgabe:
Leier
Liebe
Liebe

Anforderungen:
  • Das Programm darf keine Daten von der Tastatur lesen.
  • Die korrigieren-Methode muss alle Wörter, die den Buchstaben "r" enthalten, aus der Liste entfernen. Es gibt eine Ausnahme: Wörter, die sowohl "r" als auch "l" enthalten, müssen unangetastet bleiben.
  • Die korrigieren-Methode muss Wörter mit dem Buchstaben "l" duplizieren (eine weitere Instanz dieses Wortes zur Liste hinzufügen). Es gibt eine Ausnahme: Wörter, die sowohl "l" als auch "r" enthalten, dürfen nicht dupliziert werden.
  • Die korrigieren-Methode muss Wörter, die sowohl "l" als auch "r" enthalten, unangetastet lassen.
  • Die korrigieren-Methode muss Wörter, die weder "l" noch "r" enthalten, unangetastet lassen.
package de.codegym.task.task07.task0716; import java.util.ArrayList; /* R oder L */ public class Solution { public static void main(String[] args) throws Exception { ArrayList<String> liste = new ArrayList<>(); liste.add("Rose"); // 0 liste.add("Liebe"); // 1 liste.add("Leier"); // 2 liste = korrigieren(liste); for (String s : liste) { System.out.println(s); } } public static ArrayList<String> korrigieren(ArrayList<String> liste) { // schreib hier deinen Code for(int i = 0; i < liste.size(); i++){ String s = liste.get(i); /*if(!(s.contains("r") || s.contains("R")) && !(s.contains("l")|| s.contains("L"))){ //Weder r noch l }*/ if((s.contains("r") || s.contains("R")) && (s.contains("l")|| s.contains("L")) ){ //r und l i++; } else if( (s.contains("r") || s.contains("R")) && (!(s.contains("l")|| s.contains("L"))) ){ //r und kein l liste.remove(s); } else if( (s.contains("l")|| s.contains("L")) && (s.contains("r")|| s.contains("R")) ){ //l und r i++; } else if ( (s.contains("l")|| s.contains("L")) && (!(s.contains("r")|| s.contains("R"))) ){ //l und kein r liste.add(s); } else { i++; } } return liste; } }
0
Kommentare (1)
  • Beliebt
  • Neu
  • Alt
Sie müssen angemeldet sein um einen Kommentar zu hinterlassen
Gellert Varga
Level 23 , Szekesfehervar, Hungary
29 Mai 2020, 21:58
1) Line 30: 'r und l' has exactly the same meaning as line 34: 'l und r'. 2) You use "i++" in several places within the loop, so 'i' will not increase one by one, so the loop will skip some items in the list without testing. 3) You don’t need so much “else-if”. - if it contains 'R' and 'L' = do nothing, and goes on - otherwise if it contains 'R' = remove(); and in such a case the same indexed element must be examined again. (A new element in the list (from the right) comes and occupies this index.) So in such a case you not increase the "i"! - otherwise if it contains "L" = liste.add(s). But the important thing is not to put it at the end of the list! But to the next (i+1) index. In this case, an extra "i++" must be used to skip this inserted element. The loop should not test this duplicated element. - other case = do nothing. And the loop starts again.
+1
Lernen
  • Registrierung
  • Java-Kurs
  • Hilfe bei Aufgaben
  • Preise
  • Java-Syntax
Community
  • Nutzer
  • Artikel
  • Forum
  • Chat
  • Erfolgsgeschichten
  • Aktivität
  • Partnerprogramm
Unternehmen
  • Über uns
  • Kontakte
  • Bewertungen
  • Presse
  • CodeGym for EDU
  • FAQ
  • Support
CodeGymCodeGym ist ein Online-Kurs zum Erlernen der Java-Programmierung von Grund auf. Dieser Kurs ist eine perfekte Möglichkeit, Java als Anfänger zu meistern. Er enthält über 1200 Aufgaben mit sofortiger Überprüfung und einen wesentlichen Umfang an Java-Grundlagentheorie. Um Ihren Lernerfolg zu unterstützen, haben wir eine Reihe motivierender Funktionen implementiert: Quizze, Programmierprojekte, Inhalte zum effizienten Lernen und Karriereinformationen für Java-Entwickler.
Folgen Sie uns
Interface-Sprache
English
Deutsch
Español हिन्दी Français Português Polski বাংলা 简体中文 मराठी தமிழ் Italiano Bahasa Indonesia 繁體中文 Nederlands 日本語 한국어 Bulgarian Danish Hungarian Basa Jawa Malay Norwegian Romanian Swedish Telugu Thai Українська Filipino Turkish Azərbaycan Русский Vietnamese
"Programmierer werden gemacht, nicht geboren" © 2026 CodeGym
MastercardVisa
"Programmierer werden gemacht, nicht geboren" © 2026 CodeGym