Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[문자열 덧셈 계산기] 민경태 미션 제출합니다. #1914

Open
wants to merge 33 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 1 commit
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
e81bf33
docs: 기능 구현 목록 작성
GO-TE Oct 16, 2024
2047172
feat(Input): 유저 입력 받는 기능 구현
GO-TE Oct 16, 2024
d6b8224
feat(Validator): 커스텀 구분자의 포함 확인 기능 구현
GO-TE Oct 16, 2024
54a553d
feat(Validator): 시작값이 숫자인지 판별 기능 구현
GO-TE Oct 16, 2024
e482abc
feat(SeparatorManager): 구분자가 이미 선언 되었는지 확인 기능 구현
GO-TE Oct 16, 2024
bbe1a9b
feat(SeparatorManager): 구분자 추가 기능 구현
GO-TE Oct 16, 2024
34ab00f
feat(SeparatorManager): 수정 불가한 구분자 리스트 전달 기능 구현
GO-TE Oct 17, 2024
5d7cf65
chore: SeparatorManager 오타 수정
GO-TE Oct 17, 2024
05084c0
feat(StringHandler): 커스텀 구분자 분리해서 넘겨주는 기능 구현
GO-TE Oct 17, 2024
85820c0
feat(StringHandler): 입력 값에서 구분자만 제거하는 기능 구현
GO-TE Oct 17, 2024
3db0f08
feat(Adder): 전달 받은 값을 더하는 기능 구현
GO-TE Oct 17, 2024
685a57a
feat(Adder): 결과값 전달 기능 구현
GO-TE Oct 17, 2024
987c91c
feat(Validator): 커스텀 구분자에 대한 예외처리 구현
GO-TE Oct 17, 2024
c932d2c
docs: 검사기의 범위 초과 예외처리 기능 뎃셈기로 이동
GO-TE Oct 17, 2024
0f01bc4
feat(Validator): 포멧에 맞지 않는 입력일 시 예외 처리 기능 구현
GO-TE Oct 18, 2024
eb937f1
feat(Adder): 오버 플로우 발생 시 예외 처리 기능 구현
GO-TE Oct 18, 2024
d6a3161
feat(Output): 시작 메세지 출력 기능 구현
GO-TE Oct 18, 2024
5efe9f2
feat(Output): 결과값 출력 기능 구현
GO-TE Oct 18, 2024
bebc033
fix(StringHandler): getNumbers() 모든 수가 1의 자리로 되는 버그 수정
GO-TE Oct 19, 2024
f192a39
fix(StringHandler): 커스텀 구분자 선언문 추출, 제거 기능 수정
GO-TE Oct 19, 2024
93dc649
docs: 문자열 핸들러 기능 구현 목록 수정
GO-TE Oct 19, 2024
dde4daa
fix(Validator): 커스텀 구분자 유무, 입력값 검증 기능 수정
GO-TE Oct 19, 2024
1026689
feat(Controller): 시스템 로직 기능 구현
GO-TE Oct 19, 2024
9253888
feat(Application): 어플리케이션 기능 구현
GO-TE Oct 19, 2024
1d200a7
fix(test): 개행 문자로 인식하지 않도록 수정 (\n -> \n)
GO-TE Oct 19, 2024
a801593
refactor: 유틸성 띄는 클래스 util package로 이동
GO-TE Oct 19, 2024
050b645
chore(Controller): util 패키지 이동으로 인한 import 수정
GO-TE Oct 19, 2024
f9c80d1
fix(util): Validator 공백 입력시 에러 수정
GO-TE Oct 19, 2024
c90a512
feat(Adder): 숫자만 입력 되었는지 확인하는 기능 구현
GO-TE Oct 21, 2024
9aad1c3
style: import 와일드 카드 제거
GO-TE Oct 21, 2024
c3dbbc0
refactor(SeparatorManage): 커스텀 구분자 추가 이전 이미 존재하는지 검증
GO-TE Oct 21, 2024
bdc59bb
refactor: 하드 코딩 제거
GO-TE Oct 21, 2024
4115bc9
docs: 구현 완료 체크
GO-TE Oct 21, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
feat(Validator): 커스텀 구분자에 대한 예외처리 구현
  • Loading branch information
GO-TE committed Oct 17, 2024
commit 987c91cfe686bcffa413f33cc8fbc598d399ec21
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@
### 입력값 검사기
- 커스텀 구분자가 있는 입력일 때
- [X] 커스텀 구분자가 `//`로 시작해 `\n`가 포함되는지 확인한다.
- [ ] 커스텀 구분자가 길이가 1이 아니라면 예외 처리한다.
- [ ] 커스텀 구분자가 숫자라면 예외 처리한다.
- [ ] 커스텀 구분자가 실수를 표현하는 `.`라면 예외 처리한다.
- [ ] 커스텀 구분자가 기본 구분자라면 예외 처리 한다.
- [X] 커스텀 구분자가 길이가 1이 아니라면 예외 처리한다.
- [X] 커스텀 구분자가 숫자라면 예외 처리한다.
- [X] 커스텀 구분자가 실수를 표현하는 `.`라면 예외 처리한다.
- [X] 커스텀 구분자가 기본 구분자라면 예외 처리 한다.


- 커스텀 구분자가 없을 입력일 때
Expand Down
15 changes: 15 additions & 0 deletions src/main/java/calculator/Validator.java
Original file line number Diff line number Diff line change
Expand Up @@ -8,4 +8,19 @@ public boolean hasCustomSeparator(String input) {
public boolean isStartWithDigit(String input) {
return Character.isDigit(input.charAt(0));
}

public void validateSeparator(String separator) {
if (separator.length() != 1) {
throw new IllegalArgumentException("구분자의 길이는 1이어야 합니다.");
}
if (separator.equals(",") || separator.equals(":")) {
throw new IllegalArgumentException("이미 구분자로 등록 되어 있습니다.");
}
if (separator.equals(".")) {
throw new IllegalArgumentException(".은 구분자가 될 수 없습니다.");
}
if (isStartWithDigit(separator)) {
throw new IllegalArgumentException("숫자는 구분자가 될 수 없습니다.");
}
}
}