String na działanie matematyczne

0
double result = 0;
String line;
line = 2+3+3*4; 

Pytanie jak teraz zamienić taki napis na prawidłowe działanie matematyczne ? Czego mam szukać ?
Myślałem o pętli, ale zostaje problem kolejności działań. Chciałem to zrobić tak, że pierwszym elementem stringa jest na pewno liczba, więc ją przypisać do zmiennej result, potem sprawdzamy jaki mamy znak i wykonujemy odpowiednią operację z następną liczbą i tak dalej..., tylko wtedy 2+3+3*4 dało by mi zły wynik, bo najpierw by się wszystko dodało, a potem dopiero pomnożyło, zamiast najpierw mnożyć.

Jak to zrobić prawidłowo, jak w większości systemowych kalkulatorach Windows/Linux ?

2

Wersja dla leniwych:

import javax.script.ScriptEngineManager;
import javax.script.ScriptEngine;

public class Eval
{
    public static void main(String[] args) throws Exception
    {
        ScriptEngineManager mgr = new ScriptEngineManager();
        ScriptEngine engine = mgr.getEngineByName("JavaScript");
        String foo = "2+3+3*4";
        System.out.println(engine.eval(foo));        
    } 
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1