Em java não temos nada pronto para resolver expressões em String como o eval do JavaScript. Então eu fiz algo para isso e agora podemos usar no Java.
PS: Precisa baixar o jar ou os sources que se encontra na pagina Towel Project.
Para usar:
Expression exp = new Expression("(15+5)*8+(5-6/(5+5))"); double result = exp.resolve();
E para facilitar no caso de expressões como “(x+x+x)*5″ onde vai atribuir um valor a x.
Expression exp = new Expression("(x+x+x)*5"); exp.setVariable("x", 3); double result = exp.resolve();
Estudei um pouco de arvores e resolvi refazer completamente a classe Expression para resolver expressoes matematicas.
Agora ela além de resolver as expressões normais, podem ser usadas varias funções como as da classe Math.
E elas são: cos, sin, tan, acos, asin, atan, sqrt, sqr, log, exp, floor, ceil, abs e neg
Para usar na expressão coloque função(valor)
Algo como: cos(10)*tan(2*2)+log(1)
Fora isso ainda foi acrescentado uma função random ‘rnd’, que pode ser usada como variavel aleatoria.
Ex: ‘rnd(42)’, retorna um valor entre 0 e 41.99