Executar calculo em String

13 respostas
R

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.

13 Respostas

M

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.

R

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

A

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.

R

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???

D

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

R

outros tipos de dados???

alem disso tenho a seguinte dificuldade

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

tudo isso em string.

R

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

D

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

R

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.

A

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.

R

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

A

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

R

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

Criado 30 de setembro de 2010
Ultima resposta 4 de out. de 2010
Respostas 13
Participantes 8