나는 공백을 기준으로 숫자와 산술연산자를 모두 쪼개어 배열에 넣고 더하기와 빼기를 풀수 있게 짰다.
public static int run(String exp) {
String[] bits = exp.split(" ");
int a = Integer.parseInt(bits[0]);
int c = Integer.parseInt(bits[2]);
if (bits[1].equals("+")) {
return a + c;
} else if(bits[1].equals("-")) {
return a - c;
} else {
return 0;
}
}
강사님은 boolean 변수를 만들어 참/거짓으로 더하기/빼기 산술연산자가 들어있는지 먼저 따져보고 산술연산자를 기준으로 쪼갠 후에 배열에 넣고 풀 수 있게 짜셨다.
public static int run(String exp) {
boolean needToPlus = exp.contains("+");
boolean needToMinus = exp.contains("-");
String[] bits = null;
if (needToPlus) {
bits = exp.split(" \\+ ");
} else if (needToMinus) {
bits = exp.split(" - ");
}
int a = Integer.parseInt(bits[0]);
int b = Integer.parseInt(bits[1]);
if (needToPlus) {
return a + b;
} else if (needToMinus) {
return a - b;
}
throw new RuntimeException("처리할 수 있는 계산식이 아닙니다");
테스트 주도 개발
반복테스트
작은다위의 테스트 케이스를 작성하고 통과하는 코드를 추가하는 단계를 반복 구현한다
문자열에 특정문자가 포함되어있는지 확인 할 수 있다
if (!exp.contains(" ")) return Integer.parseInt(exp);