✅ 입력한 문자열에서 숫자를 추출하여 더하는 계산기를 구현한다.
- 문자열 입력받기
- 입력은 구분자와 양수로 구성된 문자열이며, 0과 음수는 허용되지 않는다.
- 기본 구분자로 쉼표(,)와 콜론(:)을 사용한다.
- 기본 구분자 외에 커스텀 구분자를 지정할 수 있고, 문자열 앞부분의
"//"와"\\n"사이의 문자를 커스텀 구분자로 사용한다.
- 문자열에서 숫자 추출하기
- 구분자를 기준으로 숫자를 분리한다.
- 숫자 검증하기
- 분리된 숫자는 자연수만 허용한다. (0과 음수인 경우 예외 발생)
- 추출한 숫자 더해서 합 구하기
- 분리된 숫자의 합을 계산한다.
- 빈 문자열인 경우, 0을 반환한다.
- 결과 출력하기
- 출력 형식 ⇒
결과 : 합
- 출력 형식 ⇒
실행 결과 예시
덧셈할 문자열을 입력해 주세요.
1,2:3
결과 : 6- 사용자가 잘못된 값을 입력한 경우
IllegalArgumentException발생- 음수나 0을 입력한 경우
- 커스텀 문자열이
"//"와"\\n”사이에 오지 않는 경우 (예:"//\\n1;2;3","//;1;2;3","1//;\\n2;3"등) - 구분자가 연속으로 나오는 경우 (예:
"1,,2") - 문자열 끝에 구분자가 나오는 경우 (예:
"1,2,") - 숫자 외의 문자를 입력한 경우 (예:
"1, a, b")
-
정상 동작
- 쉼표로 구분된 문자열의 합을 반환한다.
- 콜론으로 구분된 문자열의 합을 반환한다.
- 구분자로 쉼표와 콜론이 혼합되어도 정상 동작한다.
- 커스텀 구분자 지정 시에도 정상 동작한다.
- 입력이 빈 문자열인 경우, 0을 반환한다.
- 구분자 없이 숫자 하나인 경우, 문자열을 그대로 반환한다.
-
경계
- 입력 문자열 앞뒤에 공백이 있어도 올바르게 동작한다.
- 0을 포함하지 않고, 자연수만 허용한다.
-
예외
- 음수나 0을 입력한 경우
IllegalArgumentException이 발생한다. - 커스텀 문자열이 "//"와 "\n” 사이에 오지 않는 경우
IllegalArgumentException이 발생한다. - 구분자가 연속으로 나오는 경우
IllegalArgumentException이 발생한다. - 문자열 끝에 구분자가 나오는 경우
IllegalArgumentException이 발생한다. - 숫자 외의 문자를 입력한 경우
IllegalArgumentException이 발생한다.
- 음수나 0을 입력한 경우