반응형
package calculator;
public class StringCalculator {
int add(String text) {
//1번 조건
if(text == null || text.isEmpty()) {
return 0;
}
if(text.contains(",")) {
//3번 조건
String[] numbers = text.split(",");
for(String st : numbers) {
totalNumbers += Integer.parseInt(st);
}
return totalNumbers;
}
//2번 조건
return Integer.parseInt(text);
}
}
기능은 돌아가지만 여기서 멈출 것이 아니라 리팩토링 생각하기!
먼저 배열이 한 개 일 때도 split이 잘 반환되는지 테스트를 해본다
@Test
public void split() {
String[] values = "1".split(",");
assertArrayEquals(new String[] {"1"}, values);
values "1,2".split(",");
assertArrayEquals(new String[] {"1","2"}, values);
}
둘 다 잘 반환!
public class StringCalculator {
int add(String text) {
//1번 조건
if(text == null || text.isEmpty()) {
return 0;
}
int totalNumbers = 0;
//3번 조건
String[] numbers = text.split(",");
for(String st : numbers) {
totalNumbers += Integer.parseInt(st);
}
return totalNumbers;
}
}
다음처럼 중복 부분을 제거하여 리팩토링 할 수 있다
참고 : 박재성 유튜브
728x90
반응형
'개발 > 자바 웹 프로그래밍 Nest Step' 카테고리의 다른 글
문자열 계산기 3단계 구현 및 리팩토링 (0) | 2023.09.05 |
---|---|
문자열 계산기 구현 및 리팩토링 2단계 (0) | 2023.09.05 |
댓글