Executar calculo em String

Senhores, boa tarde.

Alguem sabe aqui se é possivel executar um calculo em String, ex:

String exp = "5 > 2 ";

quero executar agora exp e dar o valor verdadeiro.

Já tentei fazer o seguinte:

Boolean.valueof(exp);
porem o resutlado esta dando false.

obrigado.

Voce pode resolver com usando alguma linguagem de script na JVM.

Boolean.valueOf(“5 > 2”) retorna false por que o valueOf converte apenas “true” ou “false” para boolean.

Seria melhor você converter em formato numérico e executar o condicional

Com String pura não é possivel. terá que converter para int ou double. ou se quiser ter mais trabalho compare por posicão na tabela ASCII, mesmo assim terá que validar o operador.

a questão Boolean.valueof(), blz eu so comentei para o pessoal descartar essa ideia. usar script é dificil pq estou usando java 1.4 (heheh se fosse java 1.6 já tinha colocado um script sem tipagem…)…

alguem ja viu algum algortimo paara isso???

Porque você não utiliza os outros tipos de dados?

outros tipos de dados???

alem disso tenho a seguinte dificuldade

“((1+1)/2)*3”

tudo isso em string.

acredito que no seu caso o ideal seria usar regex, ir quebrando a string, executando as operações, transformando o que é número em formato numérico e fazendo as operações

Cara a questão é porque você está tentando fazer cálculos dentro de uma string? existem tipos númericos exatamente para isto…

Em Lua vc pode fazer o que está querendo, executar um código de uma String. Em java não vai rolar, vc vai ter que fazer um parser da expressão na mão mesmo.

Você tentar quebrar a String em um vetor de Char[] e depois usar conceito de pilha pra resolver em um switch case… pra ficarmais facil vc pode transformar para uma expressão de pré-ordem e depois com uma fila vc resolve fácil. Dá um pouco de trabalho mas você vai conseguir. Isso é estruturação de dados… vc vai encontrar em apostilas disso. Foi só uma idéia.

Olha o anexo com suas expressões em Lua. Se não for obrigatório usar Java, é uma mão na roda

Cara tu podia criar um método para ler a String e identificar os comandos e prioridades como os “(”, “)”, “+”, “-”, “/, “”*”, e depois tu fazer os calculos

Senhores, bom dia.

Seguindo o post da Renata: http://www.guj.com.br/posts/list/56523.java

Baixei essa lib
http://www.beanshell.org/download.html

ela resolveu todo o problema.

att.

Rolemberg