반응형
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; public class Test2 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("계산할 수식을 입력하세요 : "); // ex. "11+22+33+4+5-10"; result = 65; String exp = sc.nextLine(); int plusSum = 0; int minusSum = 0; String[] operand = exp.split("\\+|\\-"); Queue<Character> operator = new LinkedList<Character>(); for(int i = 0; i < exp.length(); i++) { if(exp.charAt(i) == '+') { operator.add('+'); continue; } else if(exp.charAt(i) == '-') { operator.add('-'); continue; } else { continue; } } // 첫번째 피연산자는 바로 넣어줌 plusSum = Integer.parseInt(operand[0]); // 두번째 피연산자부터 + 연산인지 - 연산인지 판단 for(int i = 1; i < operand.length; i++) { try { char ch = operator.poll(); if(ch == '+') { plusSum += Integer.parseInt(operand[i]); continue; } else if(ch == '-') { minusSum += Integer.parseInt(operand[i]); continue; } } catch (NullPointerException e) { break; } } System.out.println("결과 : " + (plusSum - minusSum)); } } | cs |
반응형