Versteht jemand diesen Codewars Error?

Hallo1234

Bekanntes Mitglied
Hallo,
man soll einen Satz in umgedrehter Reihenfolge zurückgeben. Bsp: "This is an example!" ==> "sihT si na !elpmaxe".
Ich habe die Aufgabe soweit gelöst nur gibt es bei Codewars wieder mal eine Error den ich nicht verstehe.
1627151627731.png

Das ist der Code:
Java:
  public static String reverseWords(final String original)
  {
    // Have at it
    String s = "";
        String[] parts = original.split(" ");
        
        for(int i=0; i<parts.length; i++) {
            System.out.println(parts[i]);
        }
        
        for(int k=0; k<parts.length; k++) {
            s += new StringBuilder(parts[k]+" ").reverse().toString();
        }
        return s.replaceFirst(" ","");
  }
}
Weiß jemand, was hier das Problem ist?
Vielen Dank
 
Anscheinend wird bei der Eingabe von einem String, der nur Leerzeichen enthält, erwartet, dass die Leerzeichen auch in der Antwort noch da sind. Aber ob das wirklich über die Aufgabenstellung so definiert ist, darüber kann man glaube ich streiten. 😅

Das original.split(" ") gibt in so einem Fall ein leeres Array zurück, deshalb ist deine Rückgabe auch leer.
 
Anscheinend wird bei der Eingabe von einem String, der nur Leerzeichen enthält, erwartet, dass die Leerzeichen auch in der Antwort noch da sind. Aber ob das wirklich über die Aufgabenstellung so definiert ist, darüber kann man glaube ich streiten. 😅

Das original.split(" ") gibt in so einem Fall ein leeres Array zurück, deshalb ist deine Rückgabe auch leer.
Ist es:
Complete the function that accepts a string parameter, and reverses each word in the string. All spaces in the string should be retained.
 
Bei Eclipse wird genau das ausgegeben, was im Beispiel steht. Was muss ich denn ändern, damit Codewars es akzeptiert? Wenn ich original.split() nicht verwende, kann ich die Wörter ja auch nicht teilen und einzeln umkehren.
 
Bei Eclipse wird genau das ausgegeben, was im Beispiel steht. Was muss ich denn ändern, damit Codewars es akzeptiert? Wenn ich original.split() nicht verwende, kann ich die Wörter ja auch nicht teilen und einzeln umkehren.
Du erfüllst nur die Beispiele - nicht aber die Aufgabenstellung.
Der Aufruf mit " " soll " " zurückgeben - bei dir gibt er "" zurück
Der Aufruf mit "Word " soll "droW " zurückgeben - bei dir gibt er "droW" zuück.

Das liegt daran, dass Split Leerzeichen am Ende wegwirft (Steht auch in der API-Dokumentation von Split - die sollte bei sowas als erstes lesen).

Zwei Möglichkeiten:
* Sonderbehandlung die diese Leerzeichen zählt und am Ende wieder ergänzt
* split in die Tonne treten und es von Hand machen ohne split
 

Zurück
Oben