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

TwelveDays.java 1.6KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  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 String verse(int verseNumber) {
  19. StringBuilder stringBuilder = new StringBuilder("On the " + days[verseNumber - 1]
  20. + " day of Christmas my true love gave to me, ");
  21. for (int i = verseNumber; i > 0; i--) {
  22. if (verseNumber != 1 && i == 1) stringBuilder.append("and ");
  23. stringBuilder.append(gifts[i - 1]);
  24. }
  25. stringBuilder.append("\n");
  26. return stringBuilder.toString();
  27. }
  28. public String verses(int verseNumberStart, int verseNumberEnd) {
  29. StringBuilder stringBuilder = new StringBuilder(verse(verseNumberStart));
  30. for (int i = verseNumberStart + 1; i <= verseNumberEnd; i++) {
  31. stringBuilder.append("\n");
  32. stringBuilder.append(verse(i));
  33. }
  34. return stringBuilder.toString();
  35. }
  36. public String sing() {
  37. return verses(1, 12);
  38. }
  39. }