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!

...zur Antwort
Weitere Inhalte können nur Nutzer sehen, die bei uns eingeloggt sind.