1136 | satz | Saetze testen | ||||||||
| ||||||||||
Abzugebende Files: satz.txt, satz.java |
Ihr Programm soll prüfen, ob der Satz folgende Regeln einhält:
Außer Buchstaben sind nur folgende Sonderzeichen erlaubt:
( ) . , ; "
Klammer auf, Klammer zu, Punkt, Komma, Strichpunkt, Anführungszeichen
Diese dürfen nicht als eigene Strings stehen, sondern müssen vor bzw. nach einem Wort stehen.
Hinweis: Im Folgenden wird ein einfaches Hochkomma ' verwendet, um die Sonderzeichen zu klammern; dieses einfache Hochkomma darf NICHT Bestandteil des eingelesenen Strings sein. (Es ist sozusagen ein metasprachliches Symbol.)
Nur die Sonderzeichen '(' und '"' dürfen am Anfang eines Strings stehen, alle anderen müssen am Ende stehen. Nach einem schließenden '"' oder ')' darf noch eines der Zeichen '.,;' folgen; ansonst darf maximal ein Sonderzeichen am Ende des Strings stehen.
Öffnende '(' und '"' müssen auch wieder durch ')' bzw. '"' geschlossen werden, aber nicht unbedingt im selben Wort.
Das Zeichen ';' (Strichpunkt) darf im Satz nur einmal vorkommen.
Die Wörter dürfen nur aus Buchstaben (keine Umlaute) bestehen, wobei Großbuchstaben nur am Anfang des Wortes stehen dürfen (davor evtl. '(' oder '"' ).
Der erste Buchstabe des Satzes muß ein Großbuchstabe sein.
Es ist verboten, in einem Wort mehr als dreimal denselben Buchstaben hintereinander zu schreiben, wobei Groß- und Kleinschreibung unterschieden wird.
Durch einen Punkt am Ende eines Strings wird der Satz abgeschlossen.
Sind die eingegebenen Daten inhaltlich nicht korrekt oder erfüllen nicht die
Bedingungen, so soll Ihr Programm "FALSCHE EINGABE", gefolgt von einem Zeilenvorschub, ausgeben.
Lesen Sie aber auf jeden Fall den Satz bis zum Ende ein, auch wenn schon ein
falsches Wort eingelesen wurde.
Eingabedaten |
"Guten Morgen", rief er.
Das ist ein "Beispiel". Hallo,, du. |
Ausgabedaten |
J
J FALSCHE EINGABE |
Bemerkung: Diese Beispiele dienen nur zur Verdeutlichung der Spezifikation und müssen nicht korrekt formatiert sein. Die korrekte Formatierung entnehmen Sie bitte dem mitgelieferten Outputfile. Zum Testen Ihrer Lösung können Sie aus den mitgelieferten Eingabedaten wie folgt eine Ausgabedatei erzeugen:
java satz < satz.i1 > satz.out1
Das erzeugte File satz.out1 können Sie dann mit dem mitgelieferten Outputfile satz.o1 vergleichen.