diff --git a/README.md b/README.md index bd90ef0247..017e15876e 100644 --- a/README.md +++ b/README.md @@ -1 +1,9 @@ -# java-calculator-precourse \ No newline at end of file +# java-calculator-precourse +## 기능목록 + +1. 빈 문자열 입력시 0을 반환한다. +2. 숫자 하나만 입력하면 그 숫자를 반환한다. +3. 쉼표, 혹은 콜론을 구분자로 사용해 숫자를 분리하고 그 합을 계산한다. +4. 커스텀 구분자를 지정하여 숫자의 합을 반환한다. +5. 음수, 숫자가 아닌 문자, 잘못된 형식의 입력 등에 대해 'IllegalArgumentException'을 발생시킨후 종료한다. +6. 계산 결과를 출력한다. \ No newline at end of file diff --git a/src/main/java/calculator/Application.java b/src/main/java/calculator/Application.java index 573580fb40..b2f0b0c75f 100644 --- a/src/main/java/calculator/Application.java +++ b/src/main/java/calculator/Application.java @@ -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; // 합 반환 + } +} \ No newline at end of file diff --git a/untitled/.gitignore b/untitled/.gitignore new file mode 100644 index 0000000000..f68d109965 --- /dev/null +++ b/untitled/.gitignore @@ -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 \ No newline at end of file diff --git a/untitled/src/Main.java b/untitled/src/Main.java new file mode 100644 index 0000000000..24f7aa36c8 --- /dev/null +++ b/untitled/src/Main.java @@ -0,0 +1,15 @@ +//TIP 코드를 실행하려면 을(를) 누르거나 +// 에디터 여백에 있는 아이콘을 클릭하세요. +public class Main { + public static void main(String[] args) { + //TIP 캐럿을 강조 표시된 텍스트에 놓고 을(를) 누르면 + // IntelliJ IDEA이(가) 수정을 제안하는 것을 확인할 수 있습니다. + System.out.printf("Hello and welcome!"); + + for (int i = 1; i <= 5; i++) { + //TIP 을(를) 눌러 코드 디버그를 시작하세요. 1개의 중단점을 설정해 드렸습니다 + // 언제든 을(를) 눌러 중단점을 더 추가할 수 있습니다. + System.out.println("i = " + i); + } + } +} \ No newline at end of file