Você vai ter que contruir um programa de árvore de expressões.
tipo… cada nó folha será um operando e cada nó não-folha será o operador.
Ex:
2 + 3 :
+
/
2 3
Daí você percorre a árvore de acordo com a precedência de operadores, ou pode colocar parênteses pra organizar.
Dá uma procurada na net que tem vários exemplos disso.
antoniopopete
Você pode fazer um laço para ler caractere por caractere da string e ir testando enquanto for numero você vai “fazendo buffeR”, quando for diferente de um numero, então provavelmente é um simbolo…
Então você usa o integer.parseint para gerar o numero e testa com equals o valor do simbolo (+,-,*,/)…
davidbuzatto
Vc está usando Java 6?
Se sim, você pode usar a API de scripting para te ajudar.
No caso usa a engine para o JavaScript. Creio que para seu caso vá funcionar.
Você poderia utilizar o algorítimo para converter expressões infixadas (2 + 3) para prefixadas (+ 2 3) e depois fazer o cálculo (fica mais fácil de interpretar), mas isso vai te dar muito mais trabalho...
Até mais!
leobr84
Wendly:
pessoal eu tenho uma dúvida…
vou chutar um valor só pra exemplo
se eu tenho um String com o valor " 2 *3 +4 / 2"
tem alguma maneira de eu tipo…
não sei a palavra certa…
mas eu diria tranformar isso
numa operação???
que de o resultado 8???