From c661cae05359179682ee393157a9db3b8c0b9f61 Mon Sep 17 00:00:00 2001 From: Leejungjae Date: Sat, 29 Feb 2020 23:15:40 +0900 Subject: [PATCH 1/5] =?UTF-8?q?=ED=94=84=EB=A1=9C=EB=8D=95=ED=8A=B8?= =?UTF-8?q?=EC=BD=94=EB=93=9C=20=EA=B5=AC=ED=98=84=20,=ED=85=8C=EC=8A=A4?= =?UTF-8?q?=ED=8A=B8=EC=BD=94=EB=93=9C=EA=B5=AC=ED=98=84=ED=95=B4=EC=95=BC?= =?UTF-8?q?=ED=95=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/calculator/empty.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 src/main/java/calculator/empty.txt diff --git a/src/main/java/calculator/empty.txt b/src/main/java/calculator/empty.txt deleted file mode 100644 index e69de29..0000000 From 2fae56d4cc214f47743c94f9a6a3635b5d19cdd8 Mon Sep 17 00:00:00 2001 From: Leejungjae Date: Sat, 29 Feb 2020 23:51:15 +0900 Subject: [PATCH 2/5] =?UTF-8?q?=ED=94=84=EB=A1=9C=EB=8D=95=ED=8A=B8?= =?UTF-8?q?=EC=BD=94=EB=93=9C=20,=ED=85=8C=EC=8A=A4=ED=8A=B8=EC=BD=94?= =?UTF-8?q?=EB=93=9C=EC=9E=91=EC=84=B1=ED=95=B4=EC=95=BC=ED=95=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../calculator/CalculatorApplication.java | 28 ++++++++++++++++++ src/main/java/calculator/Spliter.java | 29 +++++++++++++++++++ 2 files changed, 57 insertions(+) create mode 100644 src/main/java/calculator/CalculatorApplication.java create mode 100644 src/main/java/calculator/Spliter.java diff --git a/src/main/java/calculator/CalculatorApplication.java b/src/main/java/calculator/CalculatorApplication.java new file mode 100644 index 0000000..94fe164 --- /dev/null +++ b/src/main/java/calculator/CalculatorApplication.java @@ -0,0 +1,28 @@ +import calculator.Spliter; + +import java.util.Scanner; + +public class CalculatorApplication { + public static void main(String[] args) { + int result = 0; + System.out.println("숫자들을 입력하세요 : "); + Scanner scanner = new Scanner(System.in); + String inputValue = scanner.nextLine(); + if(inputValue.isEmpty()) { + System.out.println(result); + return; + } + + Spliter spliter = new Spliter(); + String[] splitedValue = spliter.splitValue(inputValue); + for(int i = 0 ; i < splitedValue.length ; i++){ + + result += Spliter.parseToInt(splitedValue[i]); + + } + + System.out.println(result); + + } + +} \ No newline at end of file diff --git a/src/main/java/calculator/Spliter.java b/src/main/java/calculator/Spliter.java new file mode 100644 index 0000000..3abb0e4 --- /dev/null +++ b/src/main/java/calculator/Spliter.java @@ -0,0 +1,29 @@ +package calculator; + +import com.sun.org.apache.bcel.internal.generic.ATHROW; + +public class Spliter { + + public static final String DELIMITER1 = ","; + public static final String DELIMITER2 = ";"; + + public String[] splitValue(String value){ + String[] splitedValue = value.split(",|;"); + + return splitedValue; + } + + public static int parseToInt(String value){ + + int number = Integer.parseInt(value); + checkPositve(number); + return number; + } + + public static void checkPositve(int parseInt){ + if(parseInt > 0){ + return ; + } + throw new IllegalArgumentException("양수만 입력하세요."); + } +} From 109fc3a7f2044d262f81165e3f3abdf69802850f Mon Sep 17 00:00:00 2001 From: Leejungjae Date: Sun, 1 Mar 2020 19:34:30 +0900 Subject: [PATCH 3/5] =?UTF-8?q?customerDelimiter=EC=B6=94=EA=B0=80?= =?UTF-8?q?=EC=98=88=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/test/java/calculator/empty.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 src/test/java/calculator/empty.txt diff --git a/src/test/java/calculator/empty.txt b/src/test/java/calculator/empty.txt deleted file mode 100644 index e69de29..0000000 From 11fd829f45a244969e4f0cdd11df13b7a849e2e8 Mon Sep 17 00:00:00 2001 From: Leejungjae Date: Sun, 1 Mar 2020 19:35:13 +0900 Subject: [PATCH 4/5] =?UTF-8?q?customerDelimiter=EC=B6=94=EA=B0=80?= =?UTF-8?q?=EC=98=88=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/calculator/Calclator.java | 13 ++++++ .../calculator/CalculatorApplication.java | 14 ++++--- src/main/java/calculator/Spliter.java | 42 ++++++++++++------- src/test/java/calculator/CalclatorTest.java | 21 ++++++++++ src/test/java/calculator/SpliterTest.java | 34 +++++++++++++++ 5 files changed, 104 insertions(+), 20 deletions(-) create mode 100644 src/main/java/calculator/Calclator.java create mode 100644 src/test/java/calculator/CalclatorTest.java create mode 100644 src/test/java/calculator/SpliterTest.java diff --git a/src/main/java/calculator/Calclator.java b/src/main/java/calculator/Calclator.java new file mode 100644 index 0000000..8580a89 --- /dev/null +++ b/src/main/java/calculator/Calclator.java @@ -0,0 +1,13 @@ +package calculator; + +public class Calclator { + Spliter spliter = new Spliter(); + public int sum(String[] splitedValue) { + int result = 0; + for (int i = 0; i < splitedValue.length; i++) { + result += spliter.parseToInt(splitedValue[i]); + } + return result; + } + +} \ No newline at end of file diff --git a/src/main/java/calculator/CalculatorApplication.java b/src/main/java/calculator/CalculatorApplication.java index 94fe164..a5f4c6e 100644 --- a/src/main/java/calculator/CalculatorApplication.java +++ b/src/main/java/calculator/CalculatorApplication.java @@ -1,6 +1,9 @@ +import calculator.Calclator; import calculator.Spliter; import java.util.Scanner; +import java.util.regex.Matcher; +import java.util.regex.Pattern; public class CalculatorApplication { public static void main(String[] args) { @@ -8,21 +11,20 @@ public static void main(String[] args) { System.out.println("숫자들을 입력하세요 : "); Scanner scanner = new Scanner(System.in); String inputValue = scanner.nextLine(); - if(inputValue.isEmpty()) { + if (inputValue.isEmpty()) { System.out.println(result); return; } Spliter spliter = new Spliter(); String[] splitedValue = spliter.splitValue(inputValue); - for(int i = 0 ; i < splitedValue.length ; i++){ - result += Spliter.parseToInt(splitedValue[i]); - - } + System.out.println(splitedValue); + Calclator calclator = new Calclator(); + result = calclator.sum(splitedValue); System.out.println(result); - } + } \ No newline at end of file diff --git a/src/main/java/calculator/Spliter.java b/src/main/java/calculator/Spliter.java index 3abb0e4..712138b 100644 --- a/src/main/java/calculator/Spliter.java +++ b/src/main/java/calculator/Spliter.java @@ -1,29 +1,43 @@ package calculator; -import com.sun.org.apache.bcel.internal.generic.ATHROW; - public class Spliter { - public static final String DELIMITER1 = ","; - public static final String DELIMITER2 = ";"; + public static final String DELIMITER1 = "[,|:]"; + // public static final String CUSTOMER = ";"; + + public String[] splitValue(String value) { + // Matcher m = Pattern.compile("//(.)\n(.*)").matcher(inputValue); + // if(m.find()){ + // String customDelimiter = m.group(1); + // String[] tokens =m.group(2).split(customDelimiter); - public String[] splitValue(String value){ - String[] splitedValue = value.split(",|;"); + String[] splitedValue = value.split(DELIMITER1); return splitedValue; } - public static int parseToInt(String value){ + public int parseToInt(String splitedValue) { + if (isNumberic(splitedValue)) { + int number = Integer.parseInt(splitedValue); + checkPositve(number); + return number; + } + throw new IllegalArgumentException("양수로 된 숫자만 입력하세요."); + } - int number = Integer.parseInt(value); - checkPositve(number); - return number; + public void checkPositve(int parseInt) { + if (parseInt > 0) { + return; + } + throw new IllegalArgumentException("음수가 아닌 양수만 입력하세요."); } - public static void checkPositve(int parseInt){ - if(parseInt > 0){ - return ; + public boolean isNumberic(String splitedValue) { + try { + Integer.parseInt(splitedValue); + return true; + } catch (IllegalArgumentException e) { + return false; } - throw new IllegalArgumentException("양수만 입력하세요."); } } diff --git a/src/test/java/calculator/CalclatorTest.java b/src/test/java/calculator/CalclatorTest.java new file mode 100644 index 0000000..8cdfc3f --- /dev/null +++ b/src/test/java/calculator/CalclatorTest.java @@ -0,0 +1,21 @@ +package calculator; + +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; + +import static org.junit.jupiter.api.Assertions.*; +import static org.assertj.core.api.AssertionsForInterfaceTypes.assertThat; + + + +class CalculatorTest { + Spliter spliter = new Spliter(); + Calclator calclator = new Calclator(); + @Test + @DisplayName("올바른 계산") + void sum() { + String[] splitedValue = {"1","2","5"}; + assertThat(calclator.sum(splitedValue)).isEqualTo(8); + + } +} \ No newline at end of file diff --git a/src/test/java/calculator/SpliterTest.java b/src/test/java/calculator/SpliterTest.java new file mode 100644 index 0000000..4438b80 --- /dev/null +++ b/src/test/java/calculator/SpliterTest.java @@ -0,0 +1,34 @@ +package calculator; + +import org.junit.jupiter.api.DisplayName; +import org.junit.jupiter.api.Test; +import static org.assertj.core.api.AssertionsForInterfaceTypes.assertThat; +import static org.junit.jupiter.api.Assertions.*; +import static org.assertj.core.api.AssertionsForClassTypes.assertThatThrownBy; + +class SpliterTest { + Spliter spliter = new Spliter(); + @Test + void splitValue() { +// String inputValue = new String("1,2:3"); +// assertThat(spliter.splitValue(inputValue)).isEqualTo(["1", "2", "3"]); + } + + @Test + @DisplayName("숫자가 아닐 때 테스트") + void parseToInt() { + String splitedValue = " "; + assertThatThrownBy(() -> spliter.parseToInt(splitedValue)) + .isInstanceOf(IllegalArgumentException.class) + .hasMessage("양수로 된 숫자만 입력하세요."); + } + @Test + @DisplayName("음수를 입력했을 때 테스트") + void checkPositve() { + int negative = -1; + assertThatThrownBy(() -> spliter.checkPositve(negative)) + .isInstanceOf(IllegalArgumentException.class) + .hasMessage("음수가 아닌 양수만 입력하세요."); + } + +} \ No newline at end of file From 1e3a8c4ca19c7c46cd6c4e208db7925c5cd90e50 Mon Sep 17 00:00:00 2001 From: Leejungjae Date: Tue, 3 Mar 2020 22:48:23 +0900 Subject: [PATCH 5/5] =?UTF-8?q?=EC=99=84=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../calculator/CalculatorApplication.java | 3 +-- src/main/java/calculator/Spliter.java | 22 ++++++++++++++----- src/test/java/calculator/CalclatorTest.java | 1 - 3 files changed, 17 insertions(+), 9 deletions(-) diff --git a/src/main/java/calculator/CalculatorApplication.java b/src/main/java/calculator/CalculatorApplication.java index a5f4c6e..24a3bd4 100644 --- a/src/main/java/calculator/CalculatorApplication.java +++ b/src/main/java/calculator/CalculatorApplication.java @@ -2,8 +2,7 @@ import calculator.Spliter; import java.util.Scanner; -import java.util.regex.Matcher; -import java.util.regex.Pattern; + public class CalculatorApplication { public static void main(String[] args) { diff --git a/src/main/java/calculator/Spliter.java b/src/main/java/calculator/Spliter.java index 712138b..d7dd4c2 100644 --- a/src/main/java/calculator/Spliter.java +++ b/src/main/java/calculator/Spliter.java @@ -1,18 +1,28 @@ package calculator; +import java.util.regex.Matcher; +import java.util.regex.Pattern; public class Spliter { public static final String DELIMITER1 = "[,|:]"; - // public static final String CUSTOMER = ";"; + public static final String CUSTOMER_DELIMITER = "//(.)\n(.*)"; public String[] splitValue(String value) { - // Matcher m = Pattern.compile("//(.)\n(.*)").matcher(inputValue); - // if(m.find()){ - // String customDelimiter = m.group(1); - // String[] tokens =m.group(2).split(customDelimiter); + Matcher m = Pattern.compile(CUSTOMER_DELIMITER).matcher(value); + System.out.println(m.find()); + if(m.find()){ + String customDelimiter = m.group(1); + String tokens =m.group(2); + String[] splitedValue = tokens.split(CUSTOMER_DELIMITER); + System.out.println(splitedValue[0]+"custom"); + System.out.println(splitedValue[1]+"custom"); + System.out.println(splitedValue[2]+"custom"); + } String[] splitedValue = value.split(DELIMITER1); - + System.out.println(splitedValue[0]); + System.out.println(splitedValue[1]); + System.out.println(splitedValue[2]); return splitedValue; } diff --git a/src/test/java/calculator/CalclatorTest.java b/src/test/java/calculator/CalclatorTest.java index 8cdfc3f..14fdbdd 100644 --- a/src/test/java/calculator/CalclatorTest.java +++ b/src/test/java/calculator/CalclatorTest.java @@ -16,6 +16,5 @@ class CalculatorTest { void sum() { String[] splitedValue = {"1","2","5"}; assertThat(calclator.sum(splitedValue)).isEqualTo(8); - } } \ No newline at end of file