Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public static void main(String[] args)
- {
- while( 1 > 0)
- {
- ArrayList<Integer> listNumberos = new ArrayList<>();
- ArrayList<Character> listOperador = new ArrayList<>();
- String expressao = getValues();
- if("end-of-file".equals(expressao))
- {
- break;
- }
- processar(expressao, listNumberos, listOperador);
- System.out.println(calcular(listNumberos, listOperador));
- }
- }
- public static String getValues()
- {
- String expressao;
- Scanner keyboard = new Scanner(System.in);
- System.out.println("Write a number and press enter");
- expressao = keyboard.nextLine();
- return expressao;
- }
- public static String processar(String expressao, ArrayList<Integer> listNumberos, ArrayList<Character> listOperador)
- {
- String number = "";
- for(int count = 0; count < expressao.length(); count ++)
- {
- switch(expressao.charAt(count))
- {
- case '+':
- listNumberos.add(Integer.parseInt(number));
- listOperador.add('+');
- number = "0";
- break;
- case '-':
- listNumberos.add(Integer.parseInt(number));
- listOperador.add('-');
- number = "0";
- break;
- case '*':
- listNumberos.add(Integer.parseInt(number));
- listOperador.add('*');
- number = "0";
- break;
- case '/':
- listNumberos.add(Integer.parseInt(number));
- listOperador.add('/');
- number = "0";
- break;
- case '%':
- listNumberos.add(Integer.parseInt(number));
- listOperador.add('%');
- number = "0";
- break;
- case ' ':
- break;
- default:
- number = number + expressao.charAt(count);
- break;
- }
- }
- listNumberos.add(Integer.parseInt(number));
- return "";
- }
- public static int calcular(ArrayList<Integer> listNumberos, ArrayList<Character> listOperador)
- {
- int numberX = 0;
- int numberY = 0;
- int calculo = 0;
- for(int count = 0; count < listOperador.size(); count ++)
- {
- switch(listOperador.get(count))
- {
- case '+':
- if(count == 0)
- {
- numberX = listNumberos.get(0);
- numberY = listNumberos.get(1);
- calculo = (int) (numberX + numberY);
- }
- else
- {
- numberX = listNumberos.get(count+1);
- numberY = calculo;
- calculo = (int) (numberX + numberY);
- }
- break;
- case '-':
- if(count == 0)
- {
- numberX = listNumberos.get(0);
- numberY = listNumberos.get(1);
- calculo = (int) (numberX - numberY);
- }
- else
- {
- numberX = listNumberos.get(count+1);
- numberY = calculo;
- calculo = (int) (numberY - numberX);
- }
- break;
- case '*':
- if(count == 0)
- {
- numberX = listNumberos.get(0);
- numberY = listNumberos.get(1);
- calculo = (int) (numberX * numberY);
- }
- else
- {
- numberX = listNumberos.get(count+1);
- numberY = calculo;
- calculo = (int) (numberY * numberX);
- }
- break;
- case '/':
- if(count == 0)
- {
- numberX = listNumberos.get(0);
- numberY = listNumberos.get(1);
- calculo = (int) (numberX / numberY);
- }
- else
- {
- numberX = listNumberos.get(count+1);
- numberY = calculo;
- calculo = (int) (numberY / numberX);
- }
- break;
- case '%':
- if(count == 0)
- {
- numberX = listNumberos.get(0);
- numberY = listNumberos.get(1);
- calculo = (numberX % numberY);
- }
- else
- {
- numberX = listNumberos.get(count+1);
- numberY = calculo;
- calculo = (numberY % numberX);
- }
- break;
- }
- }
- return calculo;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement