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

[java-calcuator] 지혜민 미션 제출합니다. #1905

Open
wants to merge 7 commits into
base: main
Choose a base branch
from
10 changes: 9 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1,9 @@
# java-calculator-precourse
# java-calculator-precourse
## 기능목록

1. 빈 문자열 입력시 0을 반환한다.
2. 숫자 하나만 입력하면 그 숫자를 반환한다.
3. 쉼표, 혹은 콜론을 구분자로 사용해 숫자를 분리하고 그 합을 계산한다.
4. 커스텀 구분자를 지정하여 숫자의 합을 반환한다.
5. 음수, 숫자가 아닌 문자, 잘못된 형식의 입력 등에 대해 'IllegalArgumentException'을 발생시킨후 종료한다.
6. 계산 결과를 출력한다.
34 changes: 33 additions & 1 deletion src/main/java/calculator/Application.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,37 @@
public class Application {
public static void main(String[] args) {
// TODO: 프로그램 구현
String input = "1,2:3"; // 예시 입력 (사용자 입력 부분)
System.out.println("결과: " + sum(input)); // 결과 출력
}
}

public static int sum(String input) {
if (input.isEmpty()) {
return 0; // 빈 문자열이면 0 반환
}

if (input.startsWith("//")) {
String customDelimiter = String.valueOf(input.charAt(2)); // 커스텀 구분자 추출
input = input.substring(4); // "//[구분자]\n" 형식이므로 구분자와 개행 문자 제거
String[] numbers = input.split(customDelimiter); // 커스텀 구분자로 숫자 분리
int sum = 0;
for (String number : numbers) {
if (Integer.parseInt(number) < 0) {
throw new IllegalArgumentException("음수를 입력할 수 없습니다."); // 음수 예외 발생
}
sum += Integer.parseInt(number); // 각 숫자를 더함
}
return sum; // 합 반환
}

String[] numbers = input.split("[,:]"); // 기본 구분자로 숫자 분리
int sum = 0;
for (String number : numbers) {
if (Integer.parseInt(number) < 0) {
throw new IllegalArgumentException("음수를 입력할 수 없습니다."); // 음수 예외 발생
}
sum += Integer.parseInt(number); // 각 숫자를 더함
}
return sum; // 합 반환
}
}
29 changes: 29 additions & 0 deletions untitled/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
### IntelliJ IDEA ###
out/
!**/src/main/**/out/
!**/src/test/**/out/

### Eclipse ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
bin/
!**/src/main/**/bin/
!**/src/test/**/bin/

### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/

### VS Code ###
.vscode/

### Mac OS ###
.DS_Store
15 changes: 15 additions & 0 deletions untitled/src/Main.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
//TIP 코드를 <b>실행</b>하려면 <shortcut actionId="Run"/>을(를) 누르거나
// 에디터 여백에 있는 <icon src="AllIcons.Actions.Execute"/> 아이콘을 클릭하세요.
public class Main {
public static void main(String[] args) {
//TIP 캐럿을 강조 표시된 텍스트에 놓고 <shortcut actionId="ShowIntentionActions"/>을(를) 누르면
// IntelliJ IDEA이(가) 수정을 제안하는 것을 확인할 수 있습니다.
System.out.printf("Hello and welcome!");

for (int i = 1; i <= 5; i++) {
//TIP <shortcut actionId="Debug"/>을(를) 눌러 코드 디버그를 시작하세요. 1개의 <icon src="AllIcons.Debugger.Db_set_breakpoint"/> 중단점을 설정해 드렸습니다
// 언제든 <shortcut actionId="ToggleLineBreakpoint"/>을(를) 눌러 중단점을 더 추가할 수 있습니다.
System.out.println("i = " + i);
}
}
}