From 9c2117b2f83b14dc01c9dbba6606be5076683462 Mon Sep 17 00:00:00 2001 From: Kyle Welch Date: Wed, 29 Jun 2022 09:36:18 -0400 Subject: [PATCH 1/6] added ds_store to gitignore --- .gitignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index b1c374a..0db348b 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,8 @@ # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm # Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 +.ds_store + *.ctxt *.class From 917c3a2347b36cc7cdfc9097960a5681e0cb9eef Mon Sep 17 00:00:00 2001 From: Kyle Welch Date: Wed, 29 Jun 2022 09:37:01 -0400 Subject: [PATCH 2/6] math utilities done, loopfun missing 1. about to start string utils --- src/main/java/LoopFun.java | 14 ++++++++++++-- src/main/java/MathUtilities.java | 10 +++++----- 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/src/main/java/LoopFun.java b/src/main/java/LoopFun.java index 801ab56..f823e35 100644 --- a/src/main/java/LoopFun.java +++ b/src/main/java/LoopFun.java @@ -10,7 +10,11 @@ public class LoopFun * @return the factorial of the number */ public Integer factorial(Integer number){ - return null; + int y = 1; + for (int x = 2; x <= number; x++) { + y = y * x; + } + return y; } /** @@ -21,7 +25,13 @@ public Integer factorial(Integer number){ * @return Upper case string of the first letter of each word */ public String acronym(String phrase) { - return null; + String[] phraseArray = phrase.split(" "); + String acronym = ""; + for (int i = 0 ; i <= phraseArray.length-1 ; i++) { + acronym += phraseArray[i].charAt(0); + } + acronym = acronym.toUpperCase(); + return acronym; } /** diff --git a/src/main/java/MathUtilities.java b/src/main/java/MathUtilities.java index e067c75..74b2001 100644 --- a/src/main/java/MathUtilities.java +++ b/src/main/java/MathUtilities.java @@ -9,7 +9,7 @@ public class MathUtilities{ * @return the sum of the two numbers */ public Integer add(Integer baseValue, Integer valueToAdd){ - return null; + return baseValue + valueToAdd; } /** @@ -19,7 +19,7 @@ public Integer add(Integer baseValue, Integer valueToAdd){ * @return the sum of the two numbers */ public Double add(Double baseValue, Double valueToAdd){ - return null; + return baseValue + valueToAdd; } /** @@ -28,7 +28,7 @@ public Double add(Double baseValue, Double valueToAdd){ * @return the half of the number in double */ public Double half(Integer number) { - return null; + return number * 0.5; } /** @@ -37,7 +37,7 @@ public Double half(Integer number) { * @return true if the number is odd, false if it is even */ public Boolean isOdd(Integer number){ - return null; + return number % 2 != 0; } @@ -47,7 +47,7 @@ public Boolean isOdd(Integer number){ * @return the result of the number multiply by itself */ public Integer square(Integer number) { - return null; + return number * number; } } From 87fb92d9e7c194999e3ec5471d3f5d7a9102c6ef Mon Sep 17 00:00:00 2001 From: Kyle Welch Date: Wed, 29 Jun 2022 10:00:13 -0400 Subject: [PATCH 3/6] all but encrypt passing --- src/main/java/StringUtilities.java | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/src/main/java/StringUtilities.java b/src/main/java/StringUtilities.java index e3ea8a9..3cfc13f 100644 --- a/src/main/java/StringUtilities.java +++ b/src/main/java/StringUtilities.java @@ -5,7 +5,7 @@ public class StringUtilities { * @return `input` */ public String returnInput(String input) { - return null; + return input; } /** @@ -14,7 +14,7 @@ public String returnInput(String input) { * @return the concatenation of `baseValue` and `valueToBeAdded` */ public String concatenate(String baseValue, String valueToBeAdded) { - return null; + return baseValue += valueToBeAdded; } /** @@ -22,7 +22,18 @@ public String concatenate(String baseValue, String valueToBeAdded) { * @return identical string with characters in opposite order */ public String reverse(String valueToBeReversed) { - return null; +// int sizeOfArray = value.length; +// String[] reversal = new String[sizeOfArray]; +// int y = 0; +// for (int z = array.length-1 ; z >= 0 ; z--) { +// reversal[y] = array[z]; +// y++; + + String backwards = ""; + for (int i = valueToBeReversed.length()-1 ; i >= 0; i--) { + backwards += valueToBeReversed.charAt(i); + } + return backwards; } /** @@ -30,7 +41,9 @@ public String reverse(String valueToBeReversed) { * @return middle character of `word` */ public Character getMiddleCharacter(String word) { - return null; + int wordLength = word.length(); + int theMiddle = wordLength / 2; + return word.charAt(theMiddle); } /** @@ -39,7 +52,9 @@ public Character getMiddleCharacter(String word) { * @return `value` with char of value `charToRemove` removed */ public String removeCharacter(String value, Character charToRemove) { - return null; + String remove = Character.toString(charToRemove); + value = value.replace(remove, ""); + return value; } /** @@ -47,6 +62,7 @@ public String removeCharacter(String value, Character charToRemove) { * @return last `word` in sentence */ public String getLastWord(String sentence) { - return null; + String[] sentenceArray = sentence.split(" "); + return sentenceArray[sentenceArray.length-1]; } } From 50ea8fbb0c851fa78c69d2f725066f658923f9aa Mon Sep 17 00:00:00 2001 From: Kyle Welch Date: Wed, 29 Jun 2022 10:32:17 -0400 Subject: [PATCH 4/6] all tests passed --- src/main/java/LoopFun.java | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/src/main/java/LoopFun.java b/src/main/java/LoopFun.java index f823e35..88d97ff 100644 --- a/src/main/java/LoopFun.java +++ b/src/main/java/LoopFun.java @@ -47,6 +47,19 @@ public String acronym(String phrase) { * @return the encrypted string by shifting each character by three character */ public String encrypt(String word) { - return null; + String alphabet = "abcdefghijklmnopqrstuvwxyz"; + String[] alphaArray = alphabet.split(""); + String[] wordArray = word.split(""); + String secretWord = ""; + for (int wloop = 0 ; wloop < word.length() ; wloop++) { + for (int aloop = 0 ; aloop < alphabet.length() ; aloop++) + if (word.charAt(wloop) == alphabet.charAt(aloop)) { + if (aloop+3 >= 26) { + secretWord += alphabet.charAt(aloop-23); + } else {secretWord+=alphabet.charAt(aloop+3);} + } + } + return secretWord; } + //^^LAST BRACKET OF ENCRYPT } From 2f0341f827cc2a3b1a61bca6cb6855858329d9ec Mon Sep 17 00:00:00 2001 From: Kyle Welch Date: Wed, 29 Jun 2022 10:40:18 -0400 Subject: [PATCH 5/6] cleaned up a little bit of code --- src/main/java/LoopFun.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/java/LoopFun.java b/src/main/java/LoopFun.java index 88d97ff..cc944d9 100644 --- a/src/main/java/LoopFun.java +++ b/src/main/java/LoopFun.java @@ -48,8 +48,6 @@ public String acronym(String phrase) { */ public String encrypt(String word) { String alphabet = "abcdefghijklmnopqrstuvwxyz"; - String[] alphaArray = alphabet.split(""); - String[] wordArray = word.split(""); String secretWord = ""; for (int wloop = 0 ; wloop < word.length() ; wloop++) { for (int aloop = 0 ; aloop < alphabet.length() ; aloop++) From 4b7b8ee80e51e1f120974ff89f07afde6bc0d786 Mon Sep 17 00:00:00 2001 From: Kyle Welch Date: Sat, 2 Jul 2022 23:15:54 -0400 Subject: [PATCH 6/6] added @Test to some tests --- src/main/java/LoopFun.java | 57 +++++++++++++------ src/main/java/MathUtilities.java | 7 ++- src/main/java/StringUtilities.java | 55 +++++++++++------- src/test/java/LoopsFunAcronymTest.java | 4 ++ .../java/StringUtilsRemoveCharacterTest.java | 14 +++++ 5 files changed, 100 insertions(+), 37 deletions(-) diff --git a/src/main/java/LoopFun.java b/src/main/java/LoopFun.java index cc944d9..0f8b0c9 100644 --- a/src/main/java/LoopFun.java +++ b/src/main/java/LoopFun.java @@ -15,6 +15,11 @@ public Integer factorial(Integer number){ y = y * x; } return y; + + // the factorial function can only go up to the number 13. + // \/\/ using ternary operators. kris didn't like it much +// return (number == 1) || (number == 0) ? 1 : number * factorial(number - 1); + } /** @@ -25,13 +30,21 @@ public Integer factorial(Integer number){ * @return Upper case string of the first letter of each word */ public String acronym(String phrase) { - String[] phraseArray = phrase.split(" "); - String acronym = ""; - for (int i = 0 ; i <= phraseArray.length-1 ; i++) { - acronym += phraseArray[i].charAt(0); +// String[] phraseArray = phrase.split(" "); +// String acronym = ""; +// for (int i = 0 ; i <= phraseArray.length-1 ; i++) { +// acronym += phraseArray[i].charAt(0); +// } +// acronym = acronym.toUpperCase(); +// return acronym; + + String[] sentence = phrase.split(" "); + String result = ""; + for (String s : sentence) { + result = result + s.charAt(0); } - acronym = acronym.toUpperCase(); - return acronym; + return result.toUpperCase(); + } /** @@ -47,17 +60,29 @@ public String acronym(String phrase) { * @return the encrypted string by shifting each character by three character */ public String encrypt(String word) { +// String alphabet = "abcdefghijklmnopqrstuvwxyz"; +// String secretWord = ""; +// for (int wloop = 0 ; wloop < word.length() ; wloop++) { +// for (int aloop = 0 ; aloop < alphabet.length() ; aloop++) +// if (word.charAt(wloop) == alphabet.charAt(aloop)) { +// if (aloop+3 >= 26) { +// secretWord += alphabet.charAt(aloop-23); +// } else {secretWord+=alphabet.charAt(aloop+3);} +// } +// } +// return secretWord; +// } String alphabet = "abcdefghijklmnopqrstuvwxyz"; - String secretWord = ""; - for (int wloop = 0 ; wloop < word.length() ; wloop++) { - for (int aloop = 0 ; aloop < alphabet.length() ; aloop++) - if (word.charAt(wloop) == alphabet.charAt(aloop)) { - if (aloop+3 >= 26) { - secretWord += alphabet.charAt(aloop-23); - } else {secretWord+=alphabet.charAt(aloop+3);} - } + StringBuilder encword = new StringBuilder(); + for (int i = 0; i < word.length(); i++) { + int index = alphabet.indexOf(word.charAt(i)); + index += 3; + index = index % 26; + encword.append(alphabet.charAt(index)); } - return secretWord; + return encword.toString(); } - //^^LAST BRACKET OF ENCRYPT + + //MOD WORKS HERE ON LINE 80 BECAUSE IT WILL LOOP FROM 0 TO 26. IF THE NUMBER WOULD GO OVER 26 + //IT WILL LOOP BACK TO 0. CREATIVE WAY TO LOOP BACK AROUND TO THE BEGINNING OF THE ALPHABET. } diff --git a/src/main/java/MathUtilities.java b/src/main/java/MathUtilities.java index 74b2001..c6cd584 100644 --- a/src/main/java/MathUtilities.java +++ b/src/main/java/MathUtilities.java @@ -28,9 +28,13 @@ public Double add(Double baseValue, Double valueToAdd){ * @return the half of the number in double */ public Double half(Integer number) { - return number * 0.5; +// return number * 0.5; -- THIS WORKED WHILE "number / 2" DIDN'T BECAUSE '2' IS NOT A DOUBLE. + //BELOW IS PROBABLY THE BEST WAY TO DO THIS, EVEN THOUGH MY CODE WORKED. + //THE LESSON IS THAT MY ORIGINAL ANSWER FAILED BECAUSE I WASN'T USING A DOUBLE, I WAS USING AN INT. + return number / 2.0; } + /** * Determine if the number is odd * @param number the number given @@ -49,5 +53,4 @@ public Boolean isOdd(Integer number){ public Integer square(Integer number) { return number * number; } - } diff --git a/src/main/java/StringUtilities.java b/src/main/java/StringUtilities.java index 3cfc13f..12d6053 100644 --- a/src/main/java/StringUtilities.java +++ b/src/main/java/StringUtilities.java @@ -14,7 +14,9 @@ public String returnInput(String input) { * @return the concatenation of `baseValue` and `valueToBeAdded` */ public String concatenate(String baseValue, String valueToBeAdded) { - return baseValue += valueToBeAdded; +// return baseValue += valueToBeAdded; -- my original code + //only better because it uses the concatenate method, it makes the code slightly more clear. + return baseValue.concat(valueToBeAdded); } /** @@ -22,18 +24,16 @@ public String concatenate(String baseValue, String valueToBeAdded) { * @return identical string with characters in opposite order */ public String reverse(String valueToBeReversed) { -// int sizeOfArray = value.length; -// String[] reversal = new String[sizeOfArray]; -// int y = 0; -// for (int z = array.length-1 ; z >= 0 ; z--) { -// reversal[y] = array[z]; -// y++; - - String backwards = ""; - for (int i = valueToBeReversed.length()-1 ; i >= 0; i--) { - backwards += valueToBeReversed.charAt(i); - } - return backwards; +// String backwards = ""; +// for (int i = valueToBeReversed.length()-1 ; i >= 0; i--) { +// backwards += valueToBeReversed.charAt(i); +// } +// return backwards; + + //WOW. LEARN SOME STRINGBUILDER STUFF KYLE + + return new StringBuilder(valueToBeReversed).reverse().toString(); + } /** @@ -41,9 +41,13 @@ public String reverse(String valueToBeReversed) { * @return middle character of `word` */ public Character getMiddleCharacter(String word) { - int wordLength = word.length(); - int theMiddle = wordLength / 2; - return word.charAt(theMiddle); +// int wordLength = word.length(); +// int theMiddle = wordLength / 2; +// return word.charAt(theMiddle); + + //Wow! All in one line. Even better. If the number of letters, world.length/2 would round UP. + + return word.charAt(word.length()/2); } /** @@ -52,11 +56,18 @@ public Character getMiddleCharacter(String word) { * @return `value` with char of value `charToRemove` removed */ public String removeCharacter(String value, Character charToRemove) { - String remove = Character.toString(charToRemove); - value = value.replace(remove, ""); - return value; +// String remove = Character.toString(charToRemove); +// value = value.replace(remove, ""); +// return value; + + //Wow! all in one line! + //This could also have been done with a for loop and if statement that builds a new string without charToRemove + + return value.replaceAll(String.valueOf(charToRemove), ""); } + + /** * @param sentence String delimited by spaces representative of a sentence * @return last `word` in sentence @@ -64,5 +75,11 @@ public String removeCharacter(String value, Character charToRemove) { public String getLastWord(String sentence) { String[] sentenceArray = sentence.split(" "); return sentenceArray[sentenceArray.length-1]; + + //nailed it! Kris agrees! + //he also mentioned this method: +// ArrayList s = new ArrayList<>(sentence.split(" ")); +// return s.get(s.size()-1) + } } diff --git a/src/test/java/LoopsFunAcronymTest.java b/src/test/java/LoopsFunAcronymTest.java index 61e2f5b..8ef11cb 100644 --- a/src/test/java/LoopsFunAcronymTest.java +++ b/src/test/java/LoopsFunAcronymTest.java @@ -51,6 +51,7 @@ public void test3() { assertEquals(expected, actual); } + @Test public void test6() { // given String phrase = "Center Disease Control Whistle Blower"; @@ -63,6 +64,7 @@ public void test6() { assertEquals(expected, actual); } + @Test public void test7() { // given String phrase = "Tuskegee Macon County, Alabama"; @@ -75,6 +77,7 @@ public void test7() { assertEquals(expected, actual); } + @Test public void test8() { // given String phrase = "John Charles Cutler"; @@ -100,6 +103,7 @@ public void test9() { assertEquals(expected, actual); } + @Test public void test4() { // given String phrase = "Tactical Reconnaissance Nuclear Powered Aerospace Platform"; diff --git a/src/test/java/StringUtilsRemoveCharacterTest.java b/src/test/java/StringUtilsRemoveCharacterTest.java index f08aac3..8a3b220 100644 --- a/src/test/java/StringUtilsRemoveCharacterTest.java +++ b/src/test/java/StringUtilsRemoveCharacterTest.java @@ -83,5 +83,19 @@ public void test4(){ assertEquals(expected, actual); } + @Test + public void test5(){ + // Given + String word = "fgamze"; + String expected = "gamze"; + char charToRemove = 'f'; + + //When + String actual = utilities.removeCharacter(word, charToRemove); + + //Then + assertEquals(expected, actual); + } + }