diff --git a/src/stringcalculator.py b/src/stringcalculator.py
index 41f666fdc4d0e39d619a00d678088cdbfca15376..748f0de39cb0a6aac6adc4e8c031b3e97e9414b0 100644
--- a/src/stringcalculator.py
+++ b/src/stringcalculator.py
@@ -1,7 +1,13 @@
 from src.interfaces import IStringCalculator
+import re
+
 
 class StringCalculator(IStringCalculator):
     def add(self, numbers: str) -> int:
         if not numbers:
             return 0
-        return sum(map(int, numbers.split(',')))
\ No newline at end of file
+
+        # Erlaubt Kommas und Zeilenumbrüche als Trennzeichen
+        tokens = re.split(r"[,\n]", numbers)
+
+        return sum(map(int, tokens))
\ No newline at end of file
diff --git a/tests/test_stringclaculator.py b/tests/test_stringclaculator.py
index 34863d46d9f857885949330fac161b4bfd130c95..dbafdfe3d26e924951e6fe08295623fcb7a68e8c 100644
--- a/tests/test_stringclaculator.py
+++ b/tests/test_stringclaculator.py
@@ -31,6 +31,10 @@ class TestStringCalculator(unittest.TestCase):
         self.assertEqual(self.calculator.add("1,2,3"), 6)
         self.assertEqual(self.calculator.add("10,20,30,40"), 100)
 
+    def test_add_with_newline_separator(self):
+        self.assertEqual(self.calculator.add("1\n2,3"), 6)
+        self.assertEqual(self.calculator.add("10\n20\n30"), 60)
+
 if __name__ == "__main__":
     unittest.main()