Splitten eines Strings

MiMa

Top Contributor
Hallo,

seit einiger Zeit suche ich schon den Fehler und habe auch in den Büchern nachgeschaut.
Entweder habe ich Tomaten auf den Augen, oder es ist schon zu spät. 😉

Ich möchte ein Datum aufsplitten um die einzelnen Elemente in ein Array zu packen. Die Anordung des Datums soll geändert werden.

Das Array hat scheinbar keine Dateninhalte. Ich habe es gezählt, aber es kommt 0 dabei heraus ?

Vielleicht sieht ja hier jemand meinen Fehler.

Java:
/**
     * Wandelt das Datum für eine Sortierte Dateiablage um
     *
     * @param datum (dd.mm.yyyy)
     * @return datumDatei (yyyy-mm-dd)
     */
    public static String formatiertDatumDatei(String datum) {
 
        // Datum wird übergeben im Format (dd.mm.yyyy)
        String[] datumZerlegt = datum.split(".");
        System.out.println("Anzahl der Datumselemente im Array " + datumZerlegt.length);
 
        String datumTag = datumZerlegt[0];
        String datumMonat = datumZerlegt[1];
        String datumJahr = datumZerlegt[2];
        System.out.println("Tag " + datumTag);
        System.out.println("Monat " + datumMonat);
        System.out.println("Jahr " +datumJahr);
 
        // Neuer zusammenbau des Datumd für eine Sortierung auf Dateiebene
        String datumDatei = datumJahr+"-"+datumMonat+"-"+ datumTag;

        return datumDatei;
    } //formatiertDatumDatei

Fehlermeldung:
Java:
ArrayIndexOutOfBoundsException: 0

Vielen Dank
Mi
 
Weil '.' ein Regexplatzhalter ist. Du müsstest ihn escapen mit '\\.'.
Andere Frage: Warum machst du kein String::replaceAll?
 
Danke, das escapen hat geholfen. Jetzt geht es.
Die Lösung mit dem simpleDateFormat mache ich morgen mal.

Allerdings wüsste ich nicht, wie ich mit replaceAll das Datum umstricken soll?

Mi
 
Zuletzt bearbeitet:
So, habe das jetzt mal mit dem simpleDateFormatter gemacht.
Muss sagen, der Code ist kürzer und ich denke, das es auch eleganter ist.

Java:
public static String formatiertDatumDatei2(String datum) throws ParseException {
       
        // String in ein Date umwandeln
        SimpleDateFormat datumFormatUrsprung = new SimpleDateFormat("dd.MM.yyyy");
        Date datumUrsprung = datumFormatUrsprung.parse(datum);

        // Date in einen String mit neuem Format umwandeln
        SimpleDateFormat datumFormat = new SimpleDateFormat("yyyy-MM-dd");
        String datumDatei = datumFormat.format(datumUrsprung);
        return datumDatei;
    } //formatiertDatumDatei2
Mi
 

Zurück
Oben