Explorar el Código

Ukonczony krok czwarty

Adam Matuszewski hace 1 año
padre
commit
5105e4a7cd

+ 14 - 3
StringCalculator/src/main/java/pl/dmcs/Calculator.java

@@ -1,15 +1,26 @@
 package pl.dmcs;
 
+import java.util.regex.Pattern;
+
 public class Calculator {
     public int add(String numbers) {
         if (numbers == null || numbers.isEmpty()) {
             return 0;
         }
-        // Split the string using both commas and new lines as delimiters
-        String[] numArray = numbers.split("[,\n]");
+
+        String delimiter = "[,\n]";
+        if (numbers.startsWith("//")) {
+            int delimiterIndex = numbers.indexOf("\n");
+            delimiter = Pattern.quote(numbers.substring(2, delimiterIndex));
+            numbers = numbers.substring(delimiterIndex + 1);
+        }
+
+        String[] numArray = numbers.split(delimiter);
         int sum = 0;
         for (String num : numArray) {
-            sum += Integer.parseInt(num.trim());
+            if (!num.trim().isEmpty()) {
+                sum += Integer.parseInt(num.trim());
+            }
         }
         return sum;
     }

+ 6 - 0
StringCalculator/src/test/java/pl/dmcs/CalculatorTest.java

@@ -36,4 +36,10 @@ public class CalculatorTest {
         assertEquals(15, calculator.add("1,2\n3\n4,5"));
     }
 
+    @Test
+    public void testAddWithCustomDelimiter() {
+        assertEquals(3, calculator.add("//;\n1;2"));
+        assertEquals(6, calculator.add("//|\n1|2|3"));
+        assertEquals(10, calculator.add("//sep\n1sep2sep3sep4"));
+    }
 }