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

Digit.java 1.3KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. import java.util.List;
  2. import static java.util.Arrays.asList;
  3. import static java.util.Arrays.stream;
  4. enum Digit {
  5. ZERO(asList(" _ ",
  6. "| |",
  7. "|_|")),
  8. ONE(asList(" ",
  9. " |",
  10. " |")),
  11. TWO(asList(" _ ",
  12. " _|",
  13. "|_ ")),
  14. THREE(asList(" _ ",
  15. " _|",
  16. " _|")),
  17. FOUR(asList(" ",
  18. "|_|",
  19. " |")),
  20. FIVE(asList(" _ ",
  21. "|_ ",
  22. " _|")),
  23. SIX(asList(" _ ",
  24. "|_ ",
  25. "|_|")),
  26. SEVEN(asList(" _ ",
  27. " |",
  28. " |")),
  29. EIGHT(asList(" _ ",
  30. "|_|",
  31. "|_|")),
  32. NINE(asList(" _ ",
  33. "|_|",
  34. " _|"));
  35. private final List<String> ssdRepresentation;
  36. Digit(List<String> ssd) {
  37. this.ssdRepresentation = ssd;
  38. }
  39. static String fromSsdConfiguration(final List<String> ssdConfiguration) {
  40. return stream(values())
  41. .filter(digit -> digit.ssdRepresentation.equals(ssdConfiguration))
  42. .map(Digit::ordinal)
  43. .map(Object::toString)
  44. .findFirst()
  45. .orElse("?");
  46. }
  47. }