diff --git a/src/main/java/.idea/modules.xml b/src/main/java/.idea/modules.xml
new file mode 100644
index 0000000..a127731
--- /dev/null
+++ b/src/main/java/.idea/modules.xml
@@ -0,0 +1,8 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/java/.idea/workspace.xml b/src/main/java/.idea/workspace.xml
new file mode 100644
index 0000000..c18349b
--- /dev/null
+++ b/src/main/java/.idea/workspace.xml
@@ -0,0 +1,262 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ true
+
+ true
+ true
+
+
+ true
+ DEFINITION_ORDER
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Android
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1523818578159
+
+
+ 1523818578159
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 1.8
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/main/java/io/zipcoder/Problem1.java b/src/main/java/io/zipcoder/Problem1.java
index 6cd6024..db75c24 100644
--- a/src/main/java/io/zipcoder/Problem1.java
+++ b/src/main/java/io/zipcoder/Problem1.java
@@ -1,4 +1,57 @@
package io.zipcoder;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.Map;
+
public class Problem1 {
+
+ private Map replaceMap;
+
+ public Problem1(){
+ replaceMap = new HashMap();
+ replaceMap.put('f','7');
+ replaceMap.put('s', '$');
+ replaceMap.put('1', '!');
+ replaceMap.put('a', '@');
+ }
+
+ public String stringReplacer(String input){
+ replaceMap.put('f','7');
+ replaceMap.put('s', '$');
+ replaceMap.put('1', '!');
+ replaceMap.put('a', '@');
+ char[] inputString = input.toCharArray();
+ for (int i = 0; i < inputString.length; i++){
+ char c = inputString[i];
+ if(replaceMap.containsKey(Character.toLowerCase(c))){
+ inputString[i] = replaceMap.get(Character.toLowerCase(c));
+ }
+ }
+ return new String(inputString);
+ }
+
+ public String stringRecursion(String input){
+
+ char[] inputString = input.toCharArray();
+ for (char c : replaceMap.keySet()){
+ int index = input.indexOf(Character.toLowerCase(c));
+ if (index > -1 ){
+ inputString[index] = replaceMap.get(c);
+ input = new String(inputString);
+ stringRecursion(input);
+ }
+ else {
+ index = input.indexOf(Character.toUpperCase(c));
+ if (index > -1) {
+ inputString[index] = replaceMap.get(c);
+ input = new String(inputString);
+ stringRecursion(input);
+ }
+ }
+ }
+ return input;
+ }
+
+
}
diff --git a/src/test/java/io/zipcoder/Problem1Test.java b/src/test/java/io/zipcoder/Problem1Test.java
index de82e99..80f811a 100644
--- a/src/test/java/io/zipcoder/Problem1Test.java
+++ b/src/test/java/io/zipcoder/Problem1Test.java
@@ -1,4 +1,40 @@
package io.zipcoder;
+import org.junit.Assert;
+import org.junit.Test;
+
+import java.util.HashMap;
+import java.util.Map;
+
public class Problem1Test {
+
+ @Test
+ public void replacementTest(){
+ Problem1 test = new Problem1();
+ Map testMap = new HashMap();
+
+ testMap.put('f','7');
+ testMap.put('s', '$');
+ testMap.put('1', '!');
+ testMap.put('a', '@');
+
+ String input = "The Farmer went to the store to get 1 dollar’s worth of fertilizer";
+ String expected = "The 7@rmer went to the $tore to get ! doll@r’$ worth o7 7ertilizer";
+ String actual = test.stringReplacer(input);
+
+ Assert.assertEquals(expected, actual);
+
+ }
+ @Test
+ public void replacementRecursionTest(){
+ Problem1 test = new Problem1();
+ HashMap testMap = new HashMap();
+
+
+ String input = "The Farmer went to the store to get 1 dollar’s worth of fertilizer";
+ String expected = "The 7@rmer went to the $tore to get ! doll@r’$ worth o7 7ertilizer";
+ String actual = test.stringRecursion(input);
+
+ Assert.assertEquals(expected, actual);
+ }
}