Skip to content
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);
}
}
}