PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Java String verrechnen



100
24.09.2010, 23:24
Hey, folgendes Problem:
Mein String (eine Textbox) enthält zum Beispiel folgenden Term: 3-5*4+5+2. Wenn ich sage "int x = 3-5*4+5+2" rechnet Java automatisch, aber funktioniert das auch mit einem String? Ich frage deshalb, weil in der Textbox später ein Term steht, der dann aber auch ohne größeren Aufwand verrechnet werden soll.

mfg

haggys22
24.09.2010, 23:31
Ich hab mal n bisschen geggogelt und habe folgendes gefunden:
Parser für mathematische Funktionen (http://www.java-forum.org/allgemeines/12306-parser-fuer-mathematische-formeln.html), falls es das ist, was du meinst ;D

100
24.09.2010, 23:34
Ja, das ist das genau das was ich mit "nicht umständlich meinte". Es ist unsere Aufgabe, einen Rechner in Java zu programmieren. Nun habe ich mir eine Methode geschrieben, die Terme nach verschiedenen Kriterien generiert. An unsere eigene Term-Rechen-Methoden wird ein String übergeben, aber um das Ergebnis zu überprüfen, wollte ich eigentlich Java selbst rechnen lassen. Und wenn Java den Ausdruck "2-4*4" richtig verrechnen kann, dann muss es das doch auch aus einem String können. Ich meine ich hasse Java und finde Java scheiße, aber ich hoffe doch trotzdem, dass es irgendwie geht ;)

haggys22
24.09.2010, 23:44
Du meinst also einen rechner, in den du einen String (also die Rechnung) eingibst und der dir das ganze dann ausrechnet wenn ich das richtig verstanden hab?

100
24.09.2010, 23:48
Ja klar.. 2-4 steht im String und das soll er ausrechnen. Wenn Java das kann wird es nicht mehr als ein Einzeiler sein, bloß hab ich noch nichts in die Richtung gefunden. Im Prinzip übergebe ich Java den Ausdruck als Rechenanweisung, bloß muss Java mir halt vertrauen, dass diese auch korrekt ist.

inout
24.09.2010, 23:55
Die Funktion, die du suchst, um einen string als Code auszuführen, nennt sich in vielen Skriptsprachen eval() und ist ohne Umwege auch nur in diesen verfügbar.
Du wirst hier tatsächlich wohl nicht um einen Formelparser herumkommen.

dimebag_darrell
19.10.2010, 10:24
Geht sowas nicht auch mit .parseInt?

Integer (Java 2 Platform SE v1.4.2) (http://download.oracle.com/javase/1.4.2/docs/api/java/lang/Integer.html)
In der Dokumentation musste den Befehl mal suchen.

Ich glaube im LK haben wir sowas mal machen müssen.