Veranstaltungs Projekt

Diskutiere Veranstaltungs Projekt im Java Basics - Anfänger-Themen Bereich.
J

javan00byyyy

Das ist mein Java Code
Ich muss in diesem Code Eingabe desVeranstaltungsdatums prüfen: Nur ob es 3mit Punkt getrennte«Teile»sind und ob die Länge eines «Teils» >= 1 und <= 2 bzw. == 4 ist.Falls das Datumfalsch ist, eine Meldung ausgeben und erneute Eingabe fordern.Prüfen ob der Veranstaltungsname an dem eingegebenen Datum schon im File ist.Falls ja, eine Meldung ausgeben und erneute Eingabe fordern.
Erstellen mit einem Tokenizer aber ich verstehe nicht wo und wie.


Java:
package Abgabe;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Locale;
import java.util.StringTokenizer;

public class test {

    public static void main(String[] args) throws NumberFormatException, IOException {

        // reader
        InputStreamReader converter = new InputStreamReader(System.in);
        BufferedReader in = new BufferedReader(converter);

        while (true) {

            // Menu
            System.out.println("Menu");
            System.out.println("===");

            // Erfassen
            System.out.println("1) Neue Veranstaltung erfassen");

            // Liste
            System.out.println("2) Liste aller Veranstaltungen");

            // Ende
            System.out.println("3) Programm beenden");
            System.out.println();

            // Eingabe
            System.out.print("Wählen Sie einen Menupunkt: ");
            System.out.println();

            String eingabe = in.readLine();

            if (eingabe.intern() == "1") {
                newEvent();
            } else if (eingabe.intern() == "2") {
                newList();
            } else if (eingabe.intern() == "3") {
                beenden();
                break;
            }

            System.out.println();
        }
    }

    private static void newList(File f) throws IOException {

        if (f.exists()) {

            BufferedReader bufRdr = new BufferedReader(new FileReader(f));

            // File einlesen
            File file = new File("C:\\Temp\\events.txt");

            // Liste ausgeben
            System.out.println("Liste aller Veranstaltungen:");

            String line;
            while ((line = bufRdr.readLine()) != null) {

                // Ein Wort pro Zeile ausgeben
                StringTokenizer st = new StringTokenizer(line, ";");

                String token1 = st.nextToken();
                String token2 = st.nextToken();

                StringTokenizer st1 = new StringTokenizer(token2, ".");
                int d = Integer.parseInt(st1.nextToken());
                int m = Integer.parseInt(st1.nextToken()) - 1;
                int y = Integer.parseInt(st1.nextToken());

                // Kalender
                GregorianCalendar date = new GregorianCalendar(y, m, d);

                String gcal = date.getDisplayName(GregorianCalendar.DAY_OF_WEEK, Calendar.LONG, Locale.GERMAN) + ", "
                        + date.get(GregorianCalendar.DAY_OF_MONTH) + "." + (date.get(GregorianCalendar.MONTH) + 1) + "."
                        + date.get(GregorianCalendar.YEAR);

                System.out.println("Datum: " + gcal + " - Name: " + token1);

            }

            bufRdr.close();

            System.out.println("File existiert.");
        } else {
            System.out.println("File existiert nicht.");
        }
    }

    private static void beenden() {
        System.out.println("Programm beendet");
        System.out.println();

    }

    private static void newEvent() throws IOException {

        // File einlesen
        File f = new File("C:\\Temp\\events.txt");

        // reader für File reinschreibung
        BufferedWriter out = new BufferedWriter(new FileWriter(f, true));

        InputStreamReader converter = new InputStreamReader(System.in);
        BufferedReader in = new BufferedReader(converter);

        // Benutzereingabe
        System.out.println("Geben Sie den Veranstaltungsnamen ein: ");
        String vname = in.readLine();

        String datum = "";
        while (true) {
            System.out.println("Geben Sie das Veranstaltungsdatum ein: ");
            datum = in.readLine();

            if (datumTesten(datum)) {
                break;
            } else {
                System.err.println("Datum ist falsch.");
            }
        }

        out.write(vname + ";" + datum);
        out.newLine();

        out.close();
    }

    private static boolean datumTesten(String datum) {

        return false;
    }
}
 
Zuletzt bearbeitet von einem Moderator:
krgewb

krgewb

Bitte immer in code-Tags posten.
Java:
package Abgabe;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Locale;
import java.util.StringTokenizer;

public class test {

    public static void main(String[] args) throws NumberFormatException, IOException {

        // reader
        InputStreamReader converter = new InputStreamReader(System.in);
        BufferedReader in = new BufferedReader(converter);

        while (true) {

            // Menu
            System.out.println("Menu");
            System.out.println("===");

            // Erfassen
            System.out.println("1) Neue Veranstaltung erfassen");

            // Liste
            System.out.println("2) Liste aller Veranstaltungen");

            // Ende
            System.out.println("3) Programm beenden");
            System.out.println();

            // Eingabe
            System.out.print("Wählen Sie einen Menupunkt: ");
            System.out.println();

            String eingabe = in.readLine();

            if (eingabe.intern() == "1") {
                newEvent();
            } else if (eingabe.intern() == "2") {
                newList();
            } else if (eingabe.intern() == "3") {
                beenden();
                break;
            }

           System.out.println();
        }
    }

    private static void newList(File f) throws IOException {

        if (f.exists()) {

            BufferedReader bufRdr = new BufferedReader(new FileReader(f));

            // File einlesen
            File file = new File("C:\\Temp\\events.txt");

            // Liste ausgeben
            System.out.println("Liste aller Veranstaltungen:");

            String line;
            while ((line = bufRdr.readLine()) != null) {

                // Ein Wort pro Zeile ausgeben
                StringTokenizer st = new StringTokenizer(line, ";");

                String token1 = st.nextToken();
                String token2 = st.nextToken();

                StringTokenizer st1 = new StringTokenizer(token2, ".");
                int d = Integer.parseInt(st1.nextToken());
                int m = Integer.parseInt(st1.nextToken()) - 1;
                int y = Integer.parseInt(st1.nextToken());

                // Kalender
                GregorianCalendar date = new GregorianCalendar(y, m, d);

                String gcal = date.getDisplayName(GregorianCalendar.DAY_OF_WEEK, Calendar.LONG, Locale.GERMAN) + ", "
                    + date.get(GregorianCalendar.DAY_OF_MONTH) + "." + (date.get(GregorianCalendar.MONTH) + 1) + "."
                    + date.get(GregorianCalendar.YEAR);

                System.out.println("Datum: " + gcal + " - Name: " + token1);

            }

            bufRdr.close();

            System.out.println("File existiert.");
        } 
        else {
            System.out.println("File existiert nicht.");
        }
    }

    private static void beenden() {
        System.out.println("Programm beendet");
        System.out.println();
    }

    private static void newEvent() throws IOException {

        // File einlesen
        File f = new File("C:\\Temp\\events.txt");

        // reader für File reinschreibung
        BufferedWriter out = new BufferedWriter(new FileWriter(f, true));

        InputStreamReader converter = new InputStreamReader(System.in);
        BufferedReader in = new BufferedReader(converter);

        // Benutzereingabe
        System.out.println("Geben Sie den Veranstaltungsnamen ein: ");
        String vname = in.readLine();

        String datum = "";
        while (true) {
            System.out.println("Geben Sie das Veranstaltungsdatum ein: ");
            datum = in.readLine();

            if (datumTesten(datum)) {
                break;
            } else {
                System.err.println("Datum ist falsch.");
            }
        }

        out.write(vname + ";" + datum);
        out.newLine();

        out.close();
    }

    private static boolean datumTesten(String datum) {
        return false;
    }
}
 
Zuletzt bearbeitet:
F

fhoffmann

In deinem langen Code finde ich eine interessante Funktion, die mit der Frage etwas zu tun hat:
Java:
private static boolean datumTesten(String datum) {
  return false;
}
Ob ein Datum (als String) das richtige Format hat, kannst du zum Beispiel mit regulären Audrücken überprüfen.
Du kannst natürlich auch einen Tokenizer benutzen (teile den Sting in drei Teile auf, die hoffentlic durch "." getrennt sind, und untersuche dann die einzelnen Teile)

Ich will dir aber zunächst folgendes raten:
- Wenn du in diesem Forum eine hilfreiche Antwort erhalten willst, solltest du den wichtigen Code posten (in diesem Fall also die Methode datumTesten).
- Du solltest "static" vermeiden; erzeuge eine Instanz einer Klasse und rufe deren Methoden auf.
 
Zuletzt bearbeitet:
Thema: 

Veranstaltungs Projekt

Passende Stellenanzeigen aus deiner Region:
Anzeige

Neue Themen

Anzeige

Anzeige
Oben