From 372b5f1db01d3fda0b83382d49355ba2dc833044 Mon Sep 17 00:00:00 2001 From: Hyemin Ji Date: Mon, 21 Oct 2024 23:29:46 +0900 Subject: [PATCH 1/7] =?UTF-8?q?feat:=20=EA=B3=84=EC=82=B0=20=EA=B2=B0?= =?UTF-8?q?=EA=B3=BC=EB=A5=BC=20=EC=B6=9C=EB=A0=A5=ED=95=98=EB=8A=94=20?= =?UTF-8?q?=EA=B8=B0=EB=8A=A5=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 10 +++++++- src/main/java/calculator/Application.java | 12 ++++++++++ untitled/.gitignore | 29 +++++++++++++++++++++++ untitled/src/Main.java | 15 ++++++++++++ 4 files changed, 65 insertions(+), 1 deletion(-) create mode 100644 untitled/.gitignore create mode 100644 untitled/src/Main.java 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..9b72300ec8 100644 --- a/src/main/java/calculator/Application.java +++ b/src/main/java/calculator/Application.java @@ -3,5 +3,17 @@ public class Application { public static void main(String[] args) { // TODO: 프로그램 구현 + String input = "1,2:3"; // 예시 입력, 나중에 사용자의 입력으로 변경할 수 있습니다. + + int result = add(input); + System.out.println("결과 : " + result); + + + } + public static int add(String input) { + // 빈 문자열 입력 시 0을 반환 + if (input.isEmpty()) { + return 0; + } } } 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 From 07fceebe048047473d04ce6cdade5107f1ca8414 Mon Sep 17 00:00:00 2001 From: Hyemin Ji Date: Mon, 21 Oct 2024 23:36:32 +0900 Subject: [PATCH 2/7] =?UTF-8?q?feat:=20=EB=B9=88=20=EB=AC=B8=EC=9E=90?= =?UTF-8?q?=EC=97=B4=20=EC=9E=85=EB=A0=A5=20=EC=8B=9C=200=EC=9D=84=20?= =?UTF-8?q?=EB=B0=98=ED=99=98=ED=95=98=EB=8A=94=20=EA=B8=B0=EB=8A=A5=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/calculator/Application.java | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/src/main/java/calculator/Application.java b/src/main/java/calculator/Application.java index 9b72300ec8..d0b1e0f3e6 100644 --- a/src/main/java/calculator/Application.java +++ b/src/main/java/calculator/Application.java @@ -3,17 +3,15 @@ public class Application { public static void main(String[] args) { // TODO: 프로그램 구현 - String input = "1,2:3"; // 예시 입력, 나중에 사용자의 입력으로 변경할 수 있습니다. - - int result = add(input); - System.out.println("결과 : " + result); - - + String input = ""; // 빈 문자열 입력 + System.out.println(sum(input)); // 결과 출력 } - public static int add(String input) { - // 빈 문자열 입력 시 0을 반환 + + public static int sum(String input) { if (input.isEmpty()) { - return 0; + return 0; // 빈 문자열이면 0 반환 } + return 0; // 기본 반환 값 + } } From 66075d4da66bf52131e9319c1a4bd64d212aefd4 Mon Sep 17 00:00:00 2001 From: Hyemin Ji Date: Mon, 21 Oct 2024 23:37:22 +0900 Subject: [PATCH 3/7] =?UTF-8?q?feat:=20=EC=88=AB=EC=9E=90=20=ED=95=98?= =?UTF-8?q?=EB=82=98=EB=A7=8C=20=EC=9E=85=EB=A0=A5=ED=95=98=EB=A9=B4=20?= =?UTF-8?q?=EA=B7=B8=20=EC=88=AB=EC=9E=90=EB=A5=BC=20=EB=B0=98=ED=99=98?= =?UTF-8?q?=ED=95=98=EB=8A=94=20=EA=B8=B0=EB=8A=A5=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/calculator/Application.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/main/java/calculator/Application.java b/src/main/java/calculator/Application.java index d0b1e0f3e6..12d5f3081a 100644 --- a/src/main/java/calculator/Application.java +++ b/src/main/java/calculator/Application.java @@ -15,3 +15,14 @@ public static int sum(String input) { } } +public static int sum(String input) { + if (input.isEmpty()) { + return 0; // 빈 문자열이면 0 반환 + } + + if (input.matches("\\d+")) { + return Integer.parseInt(input); // 숫자 하나만 입력 시 그 숫자 반환 + } + + return 0; // 기본 반환 값 +} \ No newline at end of file From cb8553c38de1c8c43022b169a89b2183f0382f3f Mon Sep 17 00:00:00 2001 From: Hyemin Ji Date: Mon, 21 Oct 2024 23:38:41 +0900 Subject: [PATCH 4/7] =?UTF-8?q?feat:=20=EC=89=BC=ED=91=9C=EC=99=80=20?= =?UTF-8?q?=EC=BD=9C=EB=A1=A0=EC=9D=84=20=EA=B5=AC=EB=B6=84=EC=9E=90?= =?UTF-8?q?=EB=A1=9C=20=EC=82=AC=EC=9A=A9=ED=95=B4=20=EC=88=AB=EC=9E=90?= =?UTF-8?q?=EC=9D=98=20=ED=95=A9=EC=9D=84=20=EA=B3=84=EC=82=B0=ED=95=98?= =?UTF-8?q?=EB=8A=94=20=EA=B8=B0=EB=8A=A5=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/calculator/Application.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/main/java/calculator/Application.java b/src/main/java/calculator/Application.java index 12d5f3081a..28831a61ca 100644 --- a/src/main/java/calculator/Application.java +++ b/src/main/java/calculator/Application.java @@ -24,5 +24,10 @@ public static int sum(String input) { return Integer.parseInt(input); // 숫자 하나만 입력 시 그 숫자 반환 } - return 0; // 기본 반환 값 + String[] numbers = input.split("[,:]"); // 쉼표 또는 콜론으로 숫자 분리 + int sum = 0; + for (String number : numbers) { + sum += Integer.parseInt(number); // 각 숫자를 더함 + } + return sum; // 합 반환 } \ No newline at end of file From 9d851fbc1ee976b7da14c24c39ea6f9727a9a03e Mon Sep 17 00:00:00 2001 From: Hyemin Ji Date: Mon, 21 Oct 2024 23:39:48 +0900 Subject: [PATCH 5/7] =?UTF-8?q?feat:=20=EC=BB=A4=EC=8A=A4=ED=85=80=20?= =?UTF-8?q?=EA=B5=AC=EB=B6=84=EC=9E=90=EB=A5=BC=20=EC=A7=80=EC=A0=95?= =?UTF-8?q?=ED=95=98=EC=97=AC=20=EC=88=AB=EC=9E=90=EC=9D=98=20=ED=95=A9?= =?UTF-8?q?=EC=9D=84=20=EB=B0=98=ED=99=98=ED=95=98=EB=8A=94=20=EA=B8=B0?= =?UTF-8?q?=EB=8A=A5=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/calculator/Application.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/main/java/calculator/Application.java b/src/main/java/calculator/Application.java index 28831a61ca..d2500f5175 100644 --- a/src/main/java/calculator/Application.java +++ b/src/main/java/calculator/Application.java @@ -20,11 +20,18 @@ public static int sum(String input) { return 0; // 빈 문자열이면 0 반환 } - if (input.matches("\\d+")) { - return Integer.parseInt(input); // 숫자 하나만 입력 시 그 숫자 반환 + 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) { + sum += Integer.parseInt(number); // 각 숫자를 더함 + } + return sum; // 합 반환 } - String[] numbers = input.split("[,:]"); // 쉼표 또는 콜론으로 숫자 분리 + String[] numbers = input.split("[,:]"); // 기본 구분자로 숫자 분리 int sum = 0; for (String number : numbers) { sum += Integer.parseInt(number); // 각 숫자를 더함 From 849f6bcdc7120836086529633305b3e4492dfffb Mon Sep 17 00:00:00 2001 From: Hyemin Ji Date: Mon, 21 Oct 2024 23:41:27 +0900 Subject: [PATCH 6/7] =?UTF-8?q?feat:=20=EC=9E=98=EB=AA=BB=EB=90=9C=20?= =?UTF-8?q?=EC=9E=85=EB=A0=A5=EC=97=90=20=EB=8C=80=ED=95=B4=20IllegalArgum?= =?UTF-8?q?entExpection=20=EB=B0=9C=EC=83=9D=20=EA=B8=B0=EB=8A=A5=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/calculator/Application.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main/java/calculator/Application.java b/src/main/java/calculator/Application.java index d2500f5175..0b2e4e0160 100644 --- a/src/main/java/calculator/Application.java +++ b/src/main/java/calculator/Application.java @@ -26,6 +26,9 @@ public static int sum(String input) { 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; // 합 반환 @@ -34,7 +37,10 @@ public static int sum(String input) { 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 +} From 88942112997cb84ad99e975a6169410cf149a8c8 Mon Sep 17 00:00:00 2001 From: Hyemin Ji Date: Mon, 21 Oct 2024 23:44:32 +0900 Subject: [PATCH 7/7] =?UTF-8?q?feat:=20=EA=B3=84=EC=82=B0=20=EA=B2=B0?= =?UTF-8?q?=EA=B3=BC=EB=A5=BC=20=EC=B6=9C=EB=A0=A5=ED=95=98=EB=8A=94=20?= =?UTF-8?q?=EA=B8=B0=EB=8A=A5=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/calculator/Application.java | 41 ++++++++++------------- 1 file changed, 17 insertions(+), 24 deletions(-) diff --git a/src/main/java/calculator/Application.java b/src/main/java/calculator/Application.java index 0b2e4e0160..b2f0b0c75f 100644 --- a/src/main/java/calculator/Application.java +++ b/src/main/java/calculator/Application.java @@ -3,27 +3,30 @@ public class Application { public static void main(String[] args) { // TODO: 프로그램 구현 - String input = ""; // 빈 문자열 입력 - System.out.println(sum(input)); // 결과 출력 + String input = "1,2:3"; // 예시 입력 (사용자 입력 부분) + System.out.println("결과: " + sum(input)); // 결과 출력 } public static int sum(String input) { if (input.isEmpty()) { return 0; // 빈 문자열이면 0 반환 } - return 0; // 기본 반환 값 - } -} -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; // 합 반환 + } - if (input.startsWith("//")) { - String customDelimiter = String.valueOf(input.charAt(2)); // 커스텀 구분자 추출 - input = input.substring(4); // "//[구분자]\n" 형식이므로 구분자와 개행 문자 제거 - String[] numbers = input.split(customDelimiter); // 커스텀 구분자로 숫자 분리 + String[] numbers = input.split("[,:]"); // 기본 구분자로 숫자 분리 int sum = 0; for (String number : numbers) { if (Integer.parseInt(number) < 0) { @@ -33,14 +36,4 @@ public static int sum(String input) { } 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