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

TwelveDays.java 1.7KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. public class TwelveDays {
  2. private static String[] days = new String[] {"first", "second", "third", "fourth", "fifth", "sixth", "seventh",
  3. "eighth", "ninth", "tenth", "eleventh", "twelfth"};
  4. private static String[] gifts = new String[] {
  5. "a Partridge in a Pear Tree.",
  6. "two Turtle Doves, ",
  7. "three French Hens, ",
  8. "four Calling Birds, ",
  9. "five Gold Rings, ",
  10. "six Geese-a-Laying, ",
  11. "seven Swans-a-Swimming, ",
  12. "eight Maids-a-Milking, ",
  13. "nine Ladies Dancing, ",
  14. "ten Lords-a-Leaping, ",
  15. "eleven Pipers Piping, ",
  16. "twelve Drummers Drumming, "
  17. };
  18. public static String verse(int verseNumber) {
  19. return constructVerse(verseNumber);
  20. }
  21. public static String verses(int verseNumberStart, int verseNumberEnd) {
  22. StringBuilder stringBuilder = new StringBuilder(constructVerse(verseNumberStart));
  23. for (int i = verseNumberStart + 1; i <= verseNumberEnd; i++) {
  24. stringBuilder.append("\n");
  25. stringBuilder.append(constructVerse(i));
  26. }
  27. return stringBuilder.toString();
  28. }
  29. public static String sing() {
  30. return verses(1, 12);
  31. }
  32. private static String constructVerse(int verseNumber) {
  33. StringBuilder stringBuilder = new StringBuilder("On the " + days[verseNumber - 1]
  34. + " day of Christmas my true love gave to me, ");
  35. for (int i = verseNumber; i > 0; i--) {
  36. if (verseNumber != 1 && i == 1) stringBuilder.append("and ");
  37. stringBuilder.append(gifts[i - 1]);
  38. }
  39. stringBuilder.append("\n");
  40. return stringBuilder.toString();
  41. }
  42. }