ScriptEngine Parser

MariusMeier

Mitglied
Ja ehm ich nochmals..... ehm wie lese ich das ganze jetzt mit der scriptEngine ein... sagen wir mal wir haben: x^2+2*x+1
Das wollen wir jetzt einlesen und die einzelnen Parameter herausextrahieren. Aber wie ? Bindings kann ich hinzufügen, das funktioniert alles auch ganz schön.... aber wie füge ich jetzt die ganze Formel hinzu und lese die einzelnen parameter (hier x) heraus und kann einen wert für x setzen? Hat jemand ein gutes Beispiel dafür?

MFG Marius Meier
 
Hallo,

ich denke die ScriptEngine ist hier der falsche Weg. Nach ein bisschen googlen bin ich auf jep gestoßen, das gibt es bis Version 2.4.1 GPL-lizensiert zum Download:

https://sourceforge.net/projects/jep/

Java:
import org.nfunk.jep.JEP;
import org.nfunk.jep.Node;

public class JEPDemo {
    public static void main(String[] args) throws Exception {
	JEP jep = new JEP();
	jep.setAllowUndeclared(true);

	Node n = jep.parse("a*x^2+b*x+1");
	for (Object key : jep.getSymbolTable().keySet()) {
	    if (key.equals("x"))
		jep.setVarValue((String) key, 3);
	    else
		jep.setVarValue((String) key, 1);
	}

	Object result = jep.evaluate(n);

	System.out.println(result);
    }
}

//edit: Irgendwie seh ich grad das der Syntax-Highlighter mir meine Einrückung zerschoßen hat. Es fehlen an einigen Stellen die Tabs. Strange

Gruß,
RedWing
 
Zuletzt bearbeitet:
Danke vielmals! Ich habe mir gestern dieses Paket auch angeschaut. Sieht vielversprechend aus! Vor allem kann man damit auch Komplex rechnen! Genial!

MFG Marius Meier
 
Zurück