Zum Inhalt springen

Datum als eine Zahl eingeben, spliten und einzeln ausgeben


Meri19

Empfohlene Beiträge

Hallo,

ich hoffe es kann mir jemand helfen, denn ich komme nicht weiter.

Ich will ein kurzes Programm schreiben, bei dem ich erst ein Datum in dem Format "TT MM JJJJ" eingebe, dieses dann anhand der Lehrzeichen splittet und in 3 einzelne Variablen speichere, welche ich dann wieder einzeln ausgeben kann.

Folgend habe ich es probiert, aber es geht noch nicht:

Scanner input = new Scanner(System.in);

String tag;

String monat;

String jahr;

String eingabe;

System.out.print("Geben Sie bitte das Datum in folgendem Format ein 'TT MM JJJJ': ");

eingabe = input.next();

//String Splitten und in Arrays speichern

String[] spliten = eingabe.split(" "); // –> splitten an den Leerzeichen

tag = spliten[0];

monat = spliten[1];

jahr = spliten[2];

System.out.println(tag);

System.out.println(monat);

System.out.println(jahr);

Danke schon für eure hilfe

Link zu diesem Kommentar
Auf anderen Seiten teilen

Scanner (Java Platform SE 7 ) lies mal die ersten paar Zeilen der Dokumentation zum Scanner.

Dann müsste ich folgendes verwenden oder:


String input = "1 fish 2 fish red fish blue fish";

Scanner s = new Scanner(input).useDelimiter("\\s*fish\\s*");

System.out.println(s.nextInt());

System.out.println(s.nextInt());

System.out.println(s.next());

System.out.println(s.next());

s.close(); 

und muss bei useDelimiter() dann das Lehrzeichen rein oder was kommt in die Klammer rein?

und mein Wert der Variable "eingabe" kann ich hir der variable input übergeben oder?

ich versteh das noch nicht so ganz, ich hoffe es kann mir jemand weiter helfen.

Bearbeitet von Meri19
Link zu diesem Kommentar
Auf anderen Seiten teilen

Der Scanner splittet schon automatisch an Leerzeichen (default: whitespace delimiter). D.h. bei TT MM JJJJ enthält er schon 3 Tokens, du könntest es so machen:

tag = input.next();

monat = input.next();

jahr = input.next();

Es wäre aber sicherer wenn du einen BufferedReader nimmst und mit reader.readLine() die Eingabe abholst, dann kannst du eingabe.split(" ") verwenden:

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

Bearbeitet von dicka
Link zu diesem Kommentar
Auf anderen Seiten teilen

Wenn abzusehen ist, dass die Gruppe der Nutzer es wirklich nicht schaffen, die Eingabe so vorzunehmen, wie es angegeben wurde, dann kann man sich auch einfach mit dem Scanner die Eingabe zeilenweise zurückgeben lassen um diese dann selber zu splitten.

Genauso gut könnte man auch die next() Methode mit einem RegExp als Übergabeparameter benutzen, dann kann man auch gleichzeitig sicherstellen dass die Eingabe wenigstens formal dem entspricht, was man erwartet.

Link zu diesem Kommentar
Auf anderen Seiten teilen

  • 2 Wochen später...
Der Scanner splittet schon automatisch an Leerzeichen (default: whitespace delimiter). D.h. bei TT MM JJJJ enthält er schon 3 Tokens, du könntest es so machen:

tag = input.next();

monat = input.next();

jahr = input.next();

Danke schön für die Hilfe, ich hatte einfach zu kompliziert gedacht, obwohl es auch viel einfacher ging bzw. die Fähigkeiten der Klasse nicht gekannt.

Jetzt klapt es perfekt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...