EPROG-LU - Aufgabe 1158 (Zeichen mit Suchbegriff vergleichen)
1158 Compchar Zeichen mit Suchbegriff vergleichen
Kategorie:String
Klasse:mittel
Eingabe:Strings
Ausgabe:String
Abzugebende Files: Compchar.txt, Compchar.java

Kurzbeschreibung:

Ein Zeichen wird mit einem Suchbegriff verglichen.

Allgemeine Hinweise:

Aufgabenstellung:

Ihr Programm soll zwei Strings einlesen, von denen der erste nur ein Zeichen lang sein soll. Dieses Zeichen sei Vergleichszeichen genannt. Der zweite String enthält einen Suchbegriff. In diesem Suchbegriff haben folgende Zeichen eine spezielle Bedeutung: \ [ ] ^ ?

Der Suchbegriff kann eine der folgenden Möglichkeiten sein:

a) ein normales Zeichen (also keines der oben genannten Spezialzeichen)
Beispiel: A

b) ein Fragezeichen
Beispiel: ?

c) ein Backslash (verkehter Schrägstrich) gefolgt von einem beliebigen Zeichen (also auch ein weiteres Spezialzeichen)
Beispiel: \]

d) eine Liste von zulässigen Zeichen, die in Eckigen Klammern eingeschlossen sind
Beispiel: [ABC]

e) eine Liste von unzulässigen Zeichen, die in Eckigen Klammern eingeschlossen sind, wobei nach der öffnenden Klammer ein Hochzeichen (^) kommt
Beispiel: [^ABC]

Fall a) ist einfach: Der Vergleich ist positiv, wenn beide Zeichen identisch sind.

Im Fall b) ist der Vergleich immer positiv.

Im Fall c) ist der Vergleich positiv, wenn das Vergleichszeichen mit dem zweiten Zeichen des Suchbegriffs übereinstimmt. Achtung: das zweite Zeichen des Suchbegriffs muß nicht unbedingt ein Sonderzeichen sein, auch normale Zeichen sind erlaubt!

Im Fall d) ist der Vergleich positiv, wenn das Vergleichszeichen in der eckigen Klammer vorkommt. Achtung: Im Suchbegriff können mit dem Zeichen \ analog zum Fall b) Sonderzeichen aufgeführt werden, deren Spezialbedeutung dadurch aufgehoben wird. Die öffnenden und schließenden Klammern sind in den Vergleich nicht einzubeziehen.

Im Fall e) ist der Vergleich positiv, wenn das Vergleichszeichen NICHT in der eckigen Klammer vorkommt. Achtung: Im Suchbegriff können mit dem Zeichen \ analog zum Fall b) Sonderzeichen aufgeführt werden, deren Spezialbedeutung dadurch aufgehoben wird. Die öffnenden und schließenden Klammern sowie das Hochzeichen sind in den Vergleich nicht einzubeziehen.

Eingabedaten:

Lesen Sie zwei Strings ein. Der erste String muß genau ein Zeichen lang sein.
Dieses Zeichen darf auch durchaus eines der Sonderzeichen sein.

Der zweite String enthält den Suchbegriff. Dieser muß in einer der oben genannten Formen vorliegen. Die Sonderzeichen müssen syntaktisch korrekt gesetzt werden oder durch einen Backslash aufgehoben werden (Falsch wäre z.B. [a[b] , da die zweite öffnende Klammer an dieser Stelle nicht stehen darf. Statt dessen müßte [a\[b] eingegeben werden.)

Der zweite String darf maximal 30 Zeichen lang sein.

Ausgabedaten:

Bei korrekten Eingabesätzen soll Ihr Programm "JA" ausgeben, falls der Vergleich positiv ist, ansonsten "NEIN". Geben Sie danach einen Zeilenvorschub aus.

Fehlerbehandlung:

Sämtliche Eingabedatensätze sind immer vollständig einzulesen. Generell wird bei fehlerhaften Eingabedatensätzen nur eine einzige Fehlermeldung erzeugt, weitere Berechnungen werden nicht mehr durchgeführt.

Sind eingegebenen Daten inhaltlich nicht korrekt oder erfüllen nicht die Bedingungen, so soll Ihr Programm "FALSCHE EINGABE", gefolgt von einem Zeilenvorschub, ausgeben.

Beispiele:

Eingabedaten
x ?

y [abc]

Ausgabedaten
JA

NEIN


Testen:

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 Compchar < Compchar.i1 > Compchar.out1

Das erzeugte File Compchar.out1 können Sie dann mit dem mitgelieferten Outputfile Compchar.o1 vergleichen.

Fr Jul 30 13:54:24 CEST 2021
patent_button.gif valid-html401.png elektra.jpg fsfe-logo.png valid-css.png vim.gif anybrowser.gif