- 입력한 문자열에서 숫자를 추출하여 더하는 계산기를 구현한다.
- 쉼표(
,
) 또는 콜론(:
)을 구분자로 가지는 문자열을 전달하는 경우 구분자를 기준으로 분리한 각 숫자의 합을 반환한다. - 앞의 기본 구분자(
,
,:
) 외에 커스텀 구분자를 지정할 수 있음- 커스텀 구분자는 문자열 앞부분의
"//"
와"\n"
사이에 위치하는 문자를 커스텀 구분자로 사용한다.
- 커스텀 구분자는 문자열 앞부분의
- 사용자가 잘못된 값을 입력할 경우
IllegalArgumentException
을 발생시킨 후 애플리케이션은 종료되어야 한다.
- 문자열 입력받는 메세지 출력 -> "
덧셈할 문자열을 입력해 주세요.
"- 문자열 앞, 뒤에 공백이 포함되어 있으면 제거
- 문자열이 비어있으면 (
""
) 0으로 반환
- 입력받은 문자열 예외처리 후 커스텀 구분자 적용
- 커스텀 구분자 처리 포함시 ->
"//"
"\\n"
사이 문자열 구분자로 추출, 밖에 부분은 연산 - 커스텀 구분자 처리 미포함시 -> 입력받은 문자열 모두 연산
- 커스텀 구분자 처리 포함시 ->
- 입력 문자열을 분리 후, 분리된 문자열을 숫자로 변환
- 변환된 숫자들을 모두 더해 총합을 구함
- 계산된 총합을 결과로 출력함 -> "
결과: (총합)
"
- 입력된 값이
null
일 경우 ->IllegalArgumentException
"문자열을 입력해주세요.
" - 커스텀 구분자가 여러개 입력된 경우 ->
IllegalArgumentException
"커스텀 구분자는 한번만 입력할 수 있습니다.
" - 커스텀 구분자가 너무 비정상적으로 큰 수일 경우 ->
IllegalArgumentException
"커스텀 구분자 사이 값이 너무 큽니다.
" - 커스텀 구분자에 아무것도 없는 경우 ->
IllegalArgumentException
"커스텀 구분자 사이 값이 비어있습니다.
" - 숫자가 아닌 문자가 포함된 경우 ->
IllegalArgumentException
"숫자만 입력할 수 있습니다
" - 너무 큰 수가 입력된 경우 ->
IllegalArgumentException
"입력받은 수가 너무 큽니다
" - 음수가 입력된 경우 ->
IllegalArgumentException
"음수의 값은 입력할 수 없습니다
"