Calculator.java 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. package pl.dmcs;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import java.util.regex.Pattern;
  5. public class Calculator {
  6. public int add(String numbers) {
  7. if (numbers == null || numbers.isEmpty()) {
  8. return 0;
  9. }
  10. String delimiter = "[,\n]";
  11. if (numbers.startsWith("//")) {
  12. int delimiterIndex = numbers.indexOf("\n");
  13. delimiter = Pattern.quote(numbers.substring(2, delimiterIndex));
  14. numbers = numbers.substring(delimiterIndex + 1);
  15. }
  16. String[] numArray = numbers.split(delimiter);
  17. int sum = 0;
  18. List<Integer> negativeNumbers = new ArrayList<>();
  19. for (String num : numArray) {
  20. if (!num.trim().isEmpty()) {
  21. int number = Integer.parseInt(num.trim());
  22. if (number < 0) {
  23. negativeNumbers.add(number);
  24. }
  25. sum += number;
  26. }
  27. }
  28. if (!negativeNumbers.isEmpty()) {
  29. throw new NegativeNumberException(negativeNumbers);
  30. }
  31. return sum;
  32. }
  33. }