Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Aber das stimmt doch einfach nicht. Du hast schon so viele Aufgaben gelöst/gelöst bekommen. z.B das Labyrinth (hier hast du z.b. diese Aufgabe teilweise schon erledigt (https://www.java-forum.org/thema/module-richtig-einbinden.189500/)). Nach über einem Jahr Java, sollte doch die einfachste Transferleistung zu erwarten sein.
Hinweise auf die konkreten Klassen hast du ja bekommen. (Ja, die Java Standardlib ist gross, da kann ein Hinweis in die richtige Richtung helfen).
Aber dann erwarte ich, dass man diese Seite liest und dann die Java Standardkonstrukte wie Schleifen korrekt anwendet.
Wenn ich nach einem Jahr Java von dir diese Zeile lese
Nur um es noch einmal deutlich zu sagen: Alles, was ich als nächsten Schritt sehen möchte, ist im Algorithmus, den @mihe7 gebracht hat, das zerlege(zeile).
Und Dir ist bewusst, dass Du so eine Methode schreiben und testen kannst? Wenn Du also Code wie:
Java:
public static String[] manipulation(String lines) {
List<String> csv = new ArrayList<String>();
String[] array = new String[csv.size()];
for (lines: csv) {
lines.trim().split(",");
}
return array;
}
vorschlägst. dann pack eine main dazu, in der Du dies aufrufst....
Und wenn Du einfach nur eine Flasche Cola öffnen sollst: Brauchst du dann einen Cola Kasten um dann irgendwie alle Flaschen eines Cola Kastens zu öffnen? Da verstehe ich die Logik nicht, was Du hier probierst.
Aber gehen wir den Code von Dir durch: List<String> csv = new ArrayList<String>();
Dies erzeugt eine neue ArrayList<String>, die leer ist.
String[] array = new String[csv.size()];
Dies erzeugt ein Array der Größe 0 (Da ja die ArrayList leer ist, ist size() 0)
for (lines: csv)
Da ja die ArrayList leer ist, wird natürlich nichts aufgerufen aber selbst wenn:
lines.trim().split(",");
lines.trim() gibt einen String zurück, der den Inhalt von lines enthält nur ohne Whitespace am Anfang und Ende.
Darauf wird dann split(",") aufgerufen, was ein String-Array zurück gibt und zwar der String aufgeteilt an "," Stellen. Damit wird aber nichts weiter gemacht.
Somit gibst Du dann am Ende das leere Array zurück....
Wenn Du Dir die Kommentare des Codes anschaust, dann findest Du etwas, das gebraucht wird. Das enthält also schon fast das, was Du brauchst... Du willst, dass die Teile normalisiert werden - der Punkt wird in dem Teilcode noch nicht gemacht. Aber Du könntest einfach sehr viel aus dem Code löschen, aus "lines" ein "line" machen (Singular) und dann überlegen, wie Du a) So ein Teilergebnis irgendwie für weitere Verarbeitung halten kannst. Und Du kannst Dir überlegen, wie Du dieses normalisieren hin bekommen kannst... (Zwei Möglichkeiten sehe ich da: Du machst es "manuell" oder du lernst etwas über reguläre Ausdrücke, denn split nimmt einen regulären Ausdruck ...)
Okay, das kann ich verstehe, mir ist das aber um ehrlich zu sein nicht mal aufgefallen, hab's ausversehen weggelassen. Aber das war vergessen, kein Fehler des Unwissens über eine for-Schleife ^^.
Ja, tatsächlich habe ich mir auch schon gedacht, dass mein geposteter "Algorithmus" keiner ist, wie er es sein sollte. Habe mir das auch erst zu spät im Nachhinein gedacht. Jetzt aber habe ich einen sinnvollen Code orientiert am Algorithmus erstellt.