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
Rafael_Sperendio
Seria melhor você converter em formato numérico e executar o condicional
A
augustosilverio
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
rolemberg
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
drcelo
Porque você não utiliza os outros tipos de dados?
R
rolemberg
outros tipos de dados???
alem disso tenho a seguinte dificuldade
“((1+1)/2)*3”
tudo isso em string.
R
Rafael_Sperendio
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
drcelo
Cara a questão é porque você está tentando fazer cálculos dentro de uma string? existem tipos númericos exatamente para isto…
R
renzonuccitelli
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
anderson_lp789
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
renzonuccitelli
Olha o anexo com suas expressões em Lua. Se não for obrigatório usar Java, é uma mão na roda
A
Allan_Barcelos
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