Eine Zeit lang mit dem Finger draufbleiben, dann auslassen.
Antwort
Antwort
Diese Lösung ist nicht von mir, sondern von der Seite http://codekicker.de/fragen/Komplexen-Term-berechnen/313 kopiert!
Die Antwort wurde von "Marco13" gepostet!
import javax.script.*;
...
...
...
String rechnung = "1234+56.78*23/(139-827)+745*12-6";
...
...
...
public static double evaluate(String string)
{
ScriptEngine engine =
new ScriptEngineManager().getEngineByName("JavaScript");
try
{
Object object = engine.eval("eval("+string+")");
if ((object != null) && (object instanceof Number))
{
return ((Number)(object)).doubleValue();
}
else
{
throw new IllegalArgumentException(
"Invalid input: '"+string+"'");
}
}
catch (ScriptException e)
{
throw new IllegalArgumentException(
"Invalid input: '"+string+"'", e);
}
}
public double ergebnis(){
return evaluate(rechnung);
}
Achtung: nicht auf Sicherheitslücken, Kompatibilität usw. geprüft. Verwendung auf eigene Gefahr!
Weitere Inhalte können nur Nutzer sehen, die bei uns eingeloggt sind.