[JAVA] - Polynom mittels regular expressions auf das Format überprüfen

fish-guts

Erfahrenes Mitglied
Hi Zusammen

Ich hab im Studium die Aufgabe gekriegt, einen Polynomrechner zu entwickeln.

Ich muss über die Kommandozeile ein Polynom in folgendem Format eingeben:

5x^3 + 2x^2 - 7x + 2

Danach spezifiziere ich einen Wert für die Variable (im obigen Beispiel x), und dann muss mir das Programm den Wert ausgeben.

Ich habe nun Probleme bei der Überprüfungs des Formats für das Polynom. Ich gebe den ganzen String an meinen Parser, der das ganze mittels regular expressions prüfen soll.

Mit folgendem Ausdruck bin mal soweit, dass ich einen einzelnen Term (z.B. 5x^3) korrekt prüfen kann:

Code:
((\\d)*(\\.\(\\d)*?)?)([a-z])?(\\^(\\d)*?)?((\\+|\\-)|$)*?

Damit kann ich den Inhalt eines Wertes völlig korrekt prüfen (Gleitpunktzahlen sollen in der Basis erlaubt sein, nicht jedoch im Exponent, ausserdem soll die Variabel auch nur nur in der Basis vorkommen)

Mein Problem ist nun, dass ich nur den Wert eines einzelnen Terms überprüfen kann. Ich möchte aber, dass er das ganz Polynom überprüft, unabhängig davon, wielange es ist, deshalb habe ich am Schluss der letzten Klammer nochmals *? eingefügt. Das Funktioniert aber nicht, er prüft nur den ersten Term, wenn nach dem + nochmals was folgt, gibt mein Parser einen Fehler aus.

Ausserdem will ich, dass wenn das Polynom zu Ende ist, dass da auch nichts mehr kommen darf, z.B.

5x^2 +

soll nicht erlaubt sein, weil das + dann alleine steht.

Kann mir jemand einen Ratschlag geben, wie ich das bewältigen kann?

Danke und Gruss
 
Zurück