Ich habe folgende txt-Datei, die ich brauche, mit Token zu teilen und zu einem Objekt speichern:Splitting-Token in Token-Trennzeichen in Java
1, Harry Potter, 4, 3,11,14, 20
2, Matrix, 3, 1,8,12
3, Batman, 3, 39,9,42
Struktur ist: ID, Name, Länge, movieIds
Wo Länge bezieht sich auf wie viele MovieIds gibt es.
Nicht sicher, wie movieIds separat zu teilen oder mehrere Werte für das Objekt zu setzen, wie sie sich gegenseitig überschreiben.
Scanner inputFile = new Scanner(playlistLibrary);
String str;
String[] tokens;
for (int i = 1; i < playlist.length; i ++) {
playlist[i] = new Playlist_17967352();
if (inputFile.hasNext()) {
str = inputFile.nextLine();
tokens = str.split(",");
for (int a = 0; a < tokens.length; a ++) {
playlist[i].setId(tokens[0]);
playlist[i].setName(tokens[1]);
playlist[i].setLength(tokens[2]);
if (tokens.length > 3) {
int length = Integer.parseInt(playlist[i].getLength());
String movieIds;
for (int b = 0, c = 3 ; b < length; b++, c++) {
movieIds = tokens[c];
playlist[i].setMovies(movieIds);
}
}
} // end for tokens.length
System.out.println(playlist[i].getMovies());
-Code-Ausgang:
Was ich brauche, ist:
3,11,14,20
1,8,12
39,9,42
Ist es im Bereich der Möglichkeiten, das Dateiformat zu aktualisieren? 1, Harry Potter, 4, "3,11,14,20" 2, Matrix, 3, "1,8,12" 3, Batman, 3, "39,9,42" – 42shadow42
Sieht aus wie CSV ([Comma-Separated Values] (https://en.wikipedia.org/wiki/Comma-separated_values)) Daten, verwenden Sie also einen CSV-Parser, z [Apache Commons CSV] (http://commons.apache.org/proper/common-csv/). – Andreas
@Andreas Ja, aber seine CSV-Format nicht die movieIds entweicht, so dass es nicht richtig funktioniert, wenn er die Zitate fügt – 42shadow42