Zdaje się, że trzeba tu będzie posłużyć się odwrotną notacją polską.
Możesz to zrobić np. tak:
Wprowadzać równanie, oczywiście jako String np.: 2*x^2+x, zastosować metodę z klasy String replaceAll() by podmienić wszystkie x za konkretną wartość, potem przepuścić to przez algorytm notacji polskiej i wykonać działanie:
String y = "2*x^2+x";
sout("y = " + y);
sout("x = 5");
y = y.replaceAll("x", "5")
sout("y = " + y);
String exp = toRPN(y);
double result = count(exp);
sout(result);
//sout = System.out.println();
ONP: http://eduinf.waw.pl/inf/alg/001_search/0102.php