package pl.dmcs; import java.util.ArrayList; import java.util.List; import java.util.regex.Pattern; public class Calculator { public int add(String numbers) { if (numbers == null || numbers.isEmpty()) { return 0; } 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; List negativeNumbers = new ArrayList<>(); for (String num : numArray) { if (!num.trim().isEmpty()) { int number = Integer.parseInt(num.trim()); if (number < 0) { negativeNumbers.add(number); } sum += number; } } if (!negativeNumbers.isEmpty()) { throw new NegativeNumberException(negativeNumbers); } return sum; } }