Calcular expressões vindas de arquivo .txt

É o seguinte estou recebendo uma entrada de dados(dados.txt) de um arquivo de texto que contem o seguinte formato:

2 + 3 * 5
( 2 + 3) * 10
( 3 + 4 - 2) * ( 3 + 10 / 2 )
obs: há espaços entres os itens

preciso agora calcular cada expressão que represanta cada linha do arquivo .txt porem não estou conseguindo.

[code]mport java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;

public class Calc_Programa {

public static void main(String[] args) {
    Pilha p = new Pilha(10);

    try {
        BufferedReader in = new BufferedReader(new FileReader("dados.txt"));
        String linha;            
        
        

        int l = 0;
        double d;
        while ((linha = in.readLine()) != null) {
            System.out.print("Linha " + ++l + ": ");
            System.out.println(linha);
            
            
        }
        in.close();
        


    } catch (IOException e) {
        System.out.println("O arquivo\"dados.txt\" não foi encontrado!!!!!");

    }



}

}[/code]

Do modo como está feito acredito que esteja fazendo implicitamente um casting para string.
Não seria o caso de voce colocar todo o conteúdo de cada linha como entrada de uma função que retornasse como saída ( return ) a propria entrada ?

É apenas um palpite…

+++

velho vc tem que quebrar sua string
eu fiz um teste aqui dessa maneira funcionou pq eu sei os valores que vem
mais quem sabe não abre sua mente flw

[code] public static void main(String[] args) {
String teste = “5 + 10 * 8”;
int op1 = teste.indexOf("+");

    String val1 = teste.substring(op1 - 2, op1);
    String val2 = teste.substring(op1 + 1, op1+4);
    System.out.println(val1+"-"+val2);
}[/code]

Não é um exemplo trival, tem que usar técnica de parser, fazer cálculos dos níveis mais internos para os mais externos.

Recomendo a leitura do livro: A Arte do Java. Nele aborda um capítulo todo para isso.

Fala brow,

Pelo que entendi, voce quer ler uma string como “(3 + 5) * 2”, e executar essa expressao, gerando 16.
No Java nao existe algo como a funcao eval() do Javascript (ou se existe, nao conheco).

Entao voce teria que fazer o que o amigo acima falou, analisar a linha, quebrar os fatores e levar
em consideracoes precedencia de operadores (* e / vem antes de + e -) e de parenteses…

Abraco.

Grinvon, acho que você me entendeu errado, eu sei que meu exemplo não vai resolver o problema dele, mais
meu intuito foi abrir a mente dele com um exemplo para ele buscar outras formas baseada no meu exemplo ou
nos de outras pessoas …

É uma pena que não tenha esse recurso.
Aqui os caras já implementaram isso :

http://w3eval.calcsharp.net/W3Eval.pdf

+++

No projeto towel há um avaliador de expressões bastante poderoso:

Você também pode usar a integração que o java tem com linguagens de script.

Agora, se isso é um trabalho de faculdade, e seu objetivo é calcular expressões no braço, procure pela teoria de pilha, notação infixa e pós-fixa, notação polonesa, e logo vc acabará caindo na teoria que te leva à resposta.