diff --git a/src/edu/macalester/comp124/stringtransformer/Piratizer.java b/src/edu/macalester/comp124/stringtransformer/Piratizer.java new file mode 100644 index 0000000..12d3c6a --- /dev/null +++ b/src/edu/macalester/comp124/stringtransformer/Piratizer.java @@ -0,0 +1,55 @@ +package edu.macalester.comp124.stringtransformer; + +import acm.util.RandomGenerator; + +import java.util.Scanner; + +/** + * Created by Barbara B on 2/27/14. + */ +public class Piratizer extends StringTransformer { + + + public String finishSentence(String s) { + RandomGenerator rgen = new RandomGenerator(); + int result = rgen.nextInt(1,8); + + + switch(result) { + case 1: return s + " Arrrrr!"; + case 2: return s + " Ahoy!"; + default: return s; + } + + } + + + @Override + public String transformEachWord(String in) { + Scanner wordScanner = new Scanner(in).useDelimiter("[.!?]"); + StringBuilder out = new StringBuilder(); + int prevEnd = 0; + while(wordScanner.hasNext()) { + String word = wordScanner.next(); + out.append(in.substring(prevEnd, wordScanner.match().start())); + out.append(transform(word)); + prevEnd = wordScanner.match().end(); + } + out.append(in.substring(prevEnd)); + return out.toString(); + } + + + @Override + public String transform(String s) { + s = s.replaceAll("r", "rrr"); + s = finishSentence(s); + + return s; + } + + @Override + public String toString() { + return "Piratized"; + } +} \ No newline at end of file diff --git a/src/edu/macalester/comp124/stringtransformer/VowelBleeper.java b/src/edu/macalester/comp124/stringtransformer/VowelBleeper.java new file mode 100644 index 0000000..d7000c6 --- /dev/null +++ b/src/edu/macalester/comp124/stringtransformer/VowelBleeper.java @@ -0,0 +1,17 @@ +package edu.macalester.comp124.stringtransformer; + +/** + * Created by Barbara B on 2/27/14. + */ +public class VowelBleeper extends StringTransformer { + + @Override + public String transform(String s) { + return s.replaceAll("[aeiouAEIOU]", "*"); + } + + @Override + public String toString() { + return "Vowel Bleeper"; + } +} diff --git a/test/edu/macalester/comp124/stringtransformer/PiratizerTest.java b/test/edu/macalester/comp124/stringtransformer/PiratizerTest.java new file mode 100644 index 0000000..4c5b5d6 --- /dev/null +++ b/test/edu/macalester/comp124/stringtransformer/PiratizerTest.java @@ -0,0 +1,21 @@ +package edu.macalester.comp124.stringtransformer; + +import org.junit.Test; + +import static org.junit.Assert.assertEquals; + +/** + * Created by Barbara B on 2/27/14. + */ + +public class PiratizerTest { + + private final StringTransformer piratizer = new Piratizer(); + + + @Test + public void piratizes() { + assertEquals("errra", piratizer.transform("era")); + assertEquals("pirrrate", piratizer.transform("pirate")); + } +} diff --git a/test/edu/macalester/comp124/stringtransformer/VowelBleeperTest.java b/test/edu/macalester/comp124/stringtransformer/VowelBleeperTest.java new file mode 100644 index 0000000..46206bf --- /dev/null +++ b/test/edu/macalester/comp124/stringtransformer/VowelBleeperTest.java @@ -0,0 +1,25 @@ +package edu.macalester.comp124.stringtransformer; + +import org.junit.Test; + +import static org.junit.Assert.assertEquals; + +/** + * Created by Barbara B on 2/27/14. + */ +public class VowelBleeperTest { + + private final StringTransformer vowelBleeper = new VowelBleeper(); + + @Test + public void handlesEmptyString() { + assertEquals("", vowelBleeper.transform("")); + } + + @Test + public void capitalizesAll() { + assertEquals("*", vowelBleeper.transform("A")); + assertEquals("Z*NGL*", vowelBleeper.transform("ZONGLE")); + assertEquals("b*bbl*", vowelBleeper.transform("bubble")); + } +}