Pessoal tem como eu calcular alguma expressao que esta em String como : “5+2*3-1”?
Calcular Strings
8 Respostas
Fala Dota.
Não conheço nenhum método da API que faça isso.
Nunca fiz isso, mas na raça, começaria tentando utilizar o método split() da classe String e recursão para avaliar a expressão.
Abs.
Fala Dota.Não conheço nenhum método da API que faça isso.
Nunca fiz isso, mas na raça, começaria tentando utilizar o método split() da classe String e recursão para avaliar a expressão.Abs.
Com split é treta ia ficar muita gambeta hehe. Mas eu achei uma api do beanshell que usa o metodo eval(), fez exatamente o que eu queria 
Poxa, legal. Não conhecia o beanshell. Ele é muito diferente do groovy? 
Abs.
O Groovy Faz.
E o projeto Towel também:
como será que foi criado esse método eval
no delphi eu não encontrei…estava pensando que talves ele use expressões regulares, depois ele verifica a precedencia, e vai fazendo os calculos
o complicado é resolver algo do tipo (20*((40/4)*30)+(6-4))*8
não faço idéia como ele funciona.
Procure por notação infixa e pós fixa.
Mas basicamente vc usa uma pilha para guardar a ordem das expressões e resultados intermediários.
Falando assim parece algo simples! Hahaha…
é…eu dei uma pesquisada, vi uma explicação em C usando ponteiros
é um pouco complexo