FizzBuzz/Java: Difference between revisions

no edit summary
No edit summary
No edit summary
Line 111:
 
public static void main(String[] args) {
SoundMakerGroupSound soundMakerGroupsound = new SoundMakerGroup(new SoundMakerSound(3, "Fizz"), new SoundMakerSound(5, "Buzz"));
for (int i = 1; i <= 100; i++) {
System.out.println(soundMakerGroupsound.generate(i));
}
}
 
private static class SoundMakerSound {
private final int trigger;
private final String soundonomatopoeia;
private final SoundMakerSound soundMakers[]next;
 
public SoundMakerSound(int trigger, String soundonomatopoeia, Sound next) {
this.trigger = trigger;
this.soundonomatopoeia = soundonomatopoeia;
String soundthis.next = ""next;
}
 
public String generateSound(int itrigger, String sound) {
return i % this(trigger == 0 ?, sound, : ""null);
}
}
 
public String generate(int i) {
private static class SoundMakerGroup {
StringBuilder sb = new StringBuilder();
private final SoundMaker soundMakers[];
sound += soundMakers.generate(sb, i);
 
return soundsb.isEmptylength() == 0 ? String.valueOf(i) : soundsb.toString();
public SoundMakerGroup(SoundMaker... soundMakers) {
}
this.soundMakers = soundMakers;
}
private void generate(StringBuilder sb, int i) {
if (i % trigger == 0)
sb.append(onomatopoeia);
if (next != null)
next.generate(sb, i);
}
 
public String generate(int i) {
String sound = "";
for (SoundMaker soundMakers : soundMakers) {
sound += soundMakers.generate(i);
}
return sound.isEmpty() ? String.valueOf(i) : sound;
}
}