Hallo,
ich schreibe momentan ein Programm, bei dem es essenziel ist, eine Liste mit verschiedenen Zeitpunkten zu sortieren. Allerdings besteht der zu sortierende Text nicht nur aus einem Datum; es ist auch ein kleiner Text dabei. Bisher habe ich es nur geschafft, das Datum ohne den Text zu sortieren, doch das bringt mir leider wenig und ich schaffe es nciht, den Text mitzunehmen.
Daher bitte ich nun euch um Hilfe; hier ist ein kleines Test-Programm, mit dem ich es versucht habe:
ich schreibe momentan ein Programm, bei dem es essenziel ist, eine Liste mit verschiedenen Zeitpunkten zu sortieren. Allerdings besteht der zu sortierende Text nicht nur aus einem Datum; es ist auch ein kleiner Text dabei. Bisher habe ich es nur geschafft, das Datum ohne den Text zu sortieren, doch das bringt mir leider wenig und ich schaffe es nciht, den Text mitzunehmen.
Daher bitte ich nun euch um Hilfe; hier ist ein kleines Test-Programm, mit dem ich es versucht habe:
Java:
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
public class Test {
public static void main(String[] args) {
String[] test =
{
"01.01.2002,17:53,Ich", "01.01.2001,16:38,bin",
"02.01.2001,13:42,ein", "01.01.2001,16:39,sehr",
"01.01.2003,15:35,kreativer", "01.01.1999,13:45,Text"
};
test = sortiere(test);
System.err.println("Sortiert:");
for (String s : test) {
System.err.println(s);
}
}
public static String[] sortiere(String[] liste) {
ArrayList<String> list = new ArrayList();
list.addAll(Arrays.asList(liste));
ArrayList<Date> date = new ArrayList<>();
SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy,HH:mm");
Date dt;
String[] splitted;
String[] datum;
String[] uhrzeit;
for (String s : list) {
try {
splitted = s.split(",");
s = splitted[0] + "," + splitted[1] /* + "," + splitted[2] */;
dt = sdf.parse(s);
date.add(dt);
} catch (ParseException ignore) {
}
}
date.sort((d1, d2) -> d1.compareTo(d2));
list.clear();
for (Date d : date) {
list.add(sdf.format(d));
}
for (int i = 0; i < liste.length; i++) {
liste[i] = list.get(i);
}
return liste;
}
}