Frauzer

Membros
  • Content Count

    1
  • Joined

  • Last visited

Community Reputation

0 Neutro

About Frauzer

  1. olá, estou tendo muita dificuldade para compilar um script de uma calculadora, gostaria que me ajudassem a encontrar o erro public static void main(String args[]) { Calculos c=new Calculos(); System.out.println(">>>>"+c.calculadora("5/5")); } public String calculadora(String expressao) { String resultado; List<Double> listaNumeros = new ArrayList<Double>(); List<Character> listaOperadores = new ArrayList<Character>(); listaNumeros = obterNumeros(expressao); listaOperadores = obterOperadores(expressao); resultado = calcularValor(listaNumeros, listaOperadores); return resultado; } private String calcularValor(List<Double> listaNumeros, List<Character> listaOperadores) { String resultado = ""; double total = 0.0; int j=0; for (int i = 0; i < listaNumeros.size()-1; i++) { if ( total==0.0) { double numero1 = listaNumeros.get(i).doubleValue(); double numero2 = listaNumeros.get(i + 1).doubleValue(); char operador = listaOperadores.get(i).charValue(); total = executarOperacao(numero1, operador, numero2); } else if (total>0.0) { double numero2 = listaNumeros.get(i).doubleValue(); char operador = listaOperadores.get(j).charValue(); total = executarOperacao(total, operador, numero2); j++; } } resultado = ""+total; return resultado; } private double executarOperacao(double numero1, char operador, double numero2) { double resultado = 0.0; if (operador == '+') { resultado = numero1 + numero2; } else if (operador == '-') { resultado = numero1 - numero2; } else if (operador == '/') { resultado = numero1 / numero2; } else if (operador == '*') { resultado = numero1 * numero2; } return resultado; } private List<Double> obterNumeros(String expressao) { List<Double> listaNumeros = new ArrayList<Double>(); String numeroEmString = ""; for (int i = 0; i < expressao.length(); i++) { if (isOperador(expressao.charAt(i))) { Double numero = Double.valueOf(numeroEmString); listaNumeros.add(numero); numeroEmString = ""; } else { numeroEmString = numeroEmString.concat("" + expressao.charAt(i)); } } if(!numeroEmString.isEmpty()) { Double numero = Double.valueOf(numeroEmString); listaNumeros.add(numero); } return listaNumeros; } private List<Character> obterOperadores(String expressao) { List<Character> listaOperadores = new ArrayList<Character>(); for (int i = 0; i < expressao.length(); i++) { if (isOperador(expressao.charAt(i))) { listaOperadores.add(new Character(expressao.charAt(i))); } } return listaOperadores; } private boolean isOperador(char caracter) { boolean isOperador = false; if (caracter == '-' || caracter == '+' || caracter == '/' || caracter == '*') { isOperador = true; } return isOperador; } } }