| 123456789101112131415161718192021222324252627282930313233343536373839 |
- 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<Integer> 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;
- }
- }
|