diff --git a/Step2/kimyeowon/src/main/java/calculator/Calculator.java b/Step2/kimyeowon/src/main/java/calculator/Calculator.java new file mode 100644 index 0000000..5c07ee7 --- /dev/null +++ b/Step2/kimyeowon/src/main/java/calculator/Calculator.java @@ -0,0 +1,21 @@ +package calculator; + +public class Calculator { + public int add(int n1, int n2) { + return n1 + n2; + } + + public int substract(int n1, int n2) { + return n1 - n2; + } + + public int multiply(int n1, int n2) { + return n1 * n2; + } + + public int divide(int n1, int n2) { + if (n2 == 0) throw new IllegalArgumentException("분모가 0이 될 수 없습니다."); + return n1 / n2; + } + +} \ No newline at end of file diff --git a/Step2/kimyeowon/src/main/java/calculator/StringCalculator.java b/Step2/kimyeowon/src/main/java/calculator/StringCalculator.java new file mode 100644 index 0000000..6954f84 --- /dev/null +++ b/Step2/kimyeowon/src/main/java/calculator/StringCalculator.java @@ -0,0 +1,49 @@ +package calculator; + +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +public class StringCalculator { + public int add(String text) { + if(isBlank(text)) return 0; + return sum(toInts(split(text))); + } + + private boolean isBlank(String text) { + return text == null || text.isEmpty(); + } + + private String[] split(String text) { + Matcher m = Pattern.compile("//(.)\n(.*)").matcher(text); + if(m.find()) { + String customDelimeter = m.group(1); + return m.group(2).split(customDelimeter); + } + return text.split(",|:"); + } + + private int[] toInts(String[] values) { + int[] numbers = new int[values.length]; + for (int i=0; i