2.3 문자열 계산기 요구사항 전달하는 문자를 구분자로 분리한 후 각 숫자의 합을 구해 반환해야 한다.
세부 요구사항
- 쉼표(,) 또는 콜론(:)을 구분자로 가지는 문자열을 전달하는 경우 구분자를 기준으로 분리한 후 각 숫자의 합을 반환한다.
("" => 0, "1,2" => 3, "1,2,3" => 6, "1,2:3" => 6) - 앞의 기본 구분자(쉼표, 콜론) 외에 커스텀 구분자를 지정할 수 있다. 커스텀 구분자는 문자열 앞부분의 "//"와 "\n" 사이에 위치하는 문자를 커스텀 구분자로 사용한다. 예를 들어 "//;\n1;2;3"과 같이 갑을 입력할 경우 커스텀 구분자는 세미콜론(;)이며, 결과 값은 6이 반환되어야 한다.
- 문자열 계산기에 음수를 전달하는 경우 RuntimeException으로 예외 처리해야 한다.
리팩토링 요구사항
- 메소드가 한 가지 책임만 가지도록 구현한다.
- 인덴트(indent, 들여쓰기) 깊이를 1단계로 유지한다. 인덴트는 while 문과 if 문을 사용할 경우 인덴트 깊이가 1씩 증가한다. 예를 들어 다음 소스코드의 인덴트 깊이는 2이다.
void someMethod() {
while (true) {
if (true) {
}
}
}- else를 사용하지 마라. 프로그래밍을 구현할 때 else를 사용하지 않고 프로그래밍 하는 것이 가능하다. 한번 도전해 본다.