diff --git a/src/main/java/io/zipcoder/Problem1.java b/src/main/java/io/zipcoder/Problem1.java index 6cd6024..c36fc75 100644 --- a/src/main/java/io/zipcoder/Problem1.java +++ b/src/main/java/io/zipcoder/Problem1.java @@ -1,4 +1,34 @@ package io.zipcoder; +import java.util.HashMap; + public class Problem1 { + + public String changeLetters(String str,HashMap changeMap){ + StringBuilder builder = new StringBuilder(); + for(int i = 0;i changeMap){ + if(str.length() == 0){ + return ""; + } + Character currentChar = str.charAt(0); + if(changeMap.containsKey(Character.toLowerCase(currentChar))){ + currentChar = changeMap.get(Character.toLowerCase(currentChar)); + } + return currentChar + recursion(str.substring(1),changeMap); + + } + + + + // use replace } diff --git a/src/test/java/io/zipcoder/Problem1Test.java b/src/test/java/io/zipcoder/Problem1Test.java index de82e99..7ad4806 100644 --- a/src/test/java/io/zipcoder/Problem1Test.java +++ b/src/test/java/io/zipcoder/Problem1Test.java @@ -1,4 +1,39 @@ package io.zipcoder; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; + +import java.util.HashMap; + public class Problem1Test { + Problem1 problem1; + HashMap changeMap; + String input; + + @Before + public void setUp() { + changeMap = new HashMap(); + changeMap.put('f', '7'); + changeMap.put('s', '$'); + changeMap.put('1', '!'); + changeMap.put('a', '@'); + problem1 = new Problem1(); + input = "The Farmer went to the store to get 1 dollar’s worth of fertilizer"; + + } + + @Test + public void withLoop(){ + String expected = "The 7@rmer went to the $tore to get ! doll@r’$ worth o7 7ertilizer"; + String actual = problem1.changeLetters(input,changeMap); + Assert.assertEquals(expected,actual); + } + + @Test + public void withRecursion(){ + String expected = "The 7@rmer went to the $tore to get ! doll@r’$ worth o7 7ertilizer"; + String actual = problem1.recursion(input,changeMap); + Assert.assertEquals(expected,actual); + } }