lots of exercises in java... from https://github.com/exercism/java

Series.java 967B

1234567891011121314151617181920212223242526272829303132333435363738
  1. import java.util.ArrayList;
  2. import java.util.Arrays;
  3. import java.util.List;
  4. import java.util.stream.Collectors;
  5. class Series {
  6. private final int digitsSize;
  7. private List<Integer> digits;
  8. Series(String string) {
  9. this.digits = Arrays.stream(string.split(""))
  10. .map(Integer::parseInt)
  11. .collect(Collectors.toList());
  12. this.digitsSize = this.digits.size();
  13. }
  14. List<List<Integer>> slices(int num) {
  15. if (num > this.digitsSize) {
  16. throw new IllegalArgumentException("Slice size is too big.");
  17. }
  18. final int limit = this.digitsSize - num + 1;
  19. List<List<Integer>> result = new ArrayList<>(limit);
  20. List<Integer> tmp;
  21. for (int i = 0; i < limit; i++) {
  22. tmp = this.digits.subList(i, i + num);
  23. result.add(tmp);
  24. }
  25. return result;
  26. }
  27. List<Integer> getDigits() {
  28. return digits;
  29. }
  30. }