Numero negativo da erro

Pessoal digito essa expressão quando vou testar:
(-10+3*7-11)+5^3-375/3
e tem que dar Zero, só que no meu programa dá erro de valores inválidos, aguém sabe porque?
Main:
`public class Main {

public static void main(String[] args) throws Exception {

	BufferedReader leitor = new BufferedReader(new InputStreamReader(System.in));
	Expressao analisa = null;

	/**
	 * For para sempre
	 * ReplaceAll faz a substituição do primeiro conteúdo original para o segundo conteúdo
	 */
	for(;;)
	try {		
		System.out.println("Por favor digite uma expressão: ");
		analisa = new Expressao(leitor.readLine().replaceAll(" ", "")); 
		analisa.verifiqueToken();
		
		analisa.resolveExpressao();
		
		System.out.println("O resultado final da expressão que você digitou é:");
		analisa.exibePilha();
		break;
	}

	catch (IOException error) {  //Não irá ocorrer
			}
	catch(NumberFormatException nerror){
		System.err.println("Expressão possui valores inválidos, por favor digite uma expressão correta");
	}
	catch(NullPointerException nullerror){
		System.err.println("Expressão possui valores inválidos, por favor digite uma expressão correta");
	}
	catch(Exception e){
		System.err.println(e.getMessage());
	}
}

}`

método resolveExpressao:
`public void resolveExpressao() throws Exception {

	@SuppressWarnings("unused")
	double nroConvertido;
	String operando;
	String resultado;
	double prinumero, segnumero;
	
	while (this.pilha.topo() != null){
		
		
		this.fila.enfilere(this.pilha.topo());
		this.pilha.desempilhe();	
	}

	while (this.fila.primeiro() != null) {

		try {

			nroConvertido = Double.parseDouble(this.fila.primeiro());

			this.pilha.empilhe(this.fila.primeiro());
			this.fila.desenfilere(this.fila.primeiro());
		}
		
		catch (Exception e) {

			operando = this.fila.primeiro();
			this.fila.desenfilere(this.fila.primeiro());

			segnumero = Double.parseDouble(this.pilha.topo());
			this.pilha.desempilhe();
			prinumero = Double.parseDouble(this.pilha.topo());
			this.pilha.desempilhe();

			resultado = calculaExpr(prinumero, segnumero, operando) + "";

			this.pilha.empilhe(resultado);
		} 
	}
}`

Olá

Não sei ao certo, mas acredito que a exceção que está dando aponta a linha

segnumero = Double.parseDouble(this.pilha.topo());

No trecho “(-10” da expressão tem o operador de subtração, quando é lido este operador, a pilha provavelmente está vazia e o “this.pilha.topo()” deve estar retornando “null” ou algum outro valor que não é número.

Para arrumar isso, você precisaria checar se o item anterior é operador:

Se tem operador antes então
    calcula( 0 , operando , segundo);
senão
    calcula( primeiro , operando , segundo);

Acredito que não bastaria checar se apilha estiver vazia, mas você pode testar.

Alguém pode me dizer como faço uma pergunta aqui no fórum to perdido.

Sim, basta estar na página inicial e ir até “Novo Tópico”. Siga as instruções abaixo: