From ba0646a65650d07fc97925234a54f3411908687a Mon Sep 17 00:00:00 2001 From: Sascha Date: Sun, 20 Sep 2020 16:58:51 +0200 Subject: [PATCH 1/5] Initial-Code --- .idea/misc.xml | 2 +- .../src/main/java/PigLatinTranslator.java | 58 ++++++++++++++++++- .../src/test/java/PigLatinTranslatorTest.java | 4 +- clean-code.iml | 11 ++++ 4 files changed, 71 insertions(+), 4 deletions(-) diff --git a/.idea/misc.xml b/.idea/misc.xml index a2de11b..5d4b022 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -4,7 +4,7 @@ - + \ No newline at end of file diff --git a/clean-code-challanges/src/main/java/PigLatinTranslator.java b/clean-code-challanges/src/main/java/PigLatinTranslator.java index 602a04d..d8252af 100644 --- a/clean-code-challanges/src/main/java/PigLatinTranslator.java +++ b/clean-code-challanges/src/main/java/PigLatinTranslator.java @@ -1,3 +1,8 @@ +package main.java; + +import java.util.regex.Matcher; +import java.util.regex.Pattern; + /** * Implement a program that translates from English to Pig Latin. * @@ -17,7 +22,56 @@ */ public class PigLatinTranslator { - public String translate(String englishPhrase) { - return null; + public static String translate (String englishPhrase){ + char ch = englishPhrase.charAt(0); + + Pattern startWithSqu = Pattern.compile("^squ"); + Pattern startWithTh = Pattern.compile("^th"); + Pattern startWithThr = Pattern.compile("^thr"); + Pattern startWithSch = Pattern.compile("^sch"); + Pattern startWithYt = Pattern.compile("^yt"); + Pattern startWithXr = Pattern.compile("^xr"); + + String str = Character.toString(ch); + + String s; + if (ch=='a' || ch=='e' || ch=='i' || ch=='o' || ch=='u') { + s = englishPhrase + "ay"; +// System.out.println(s); + } else if (ch=='c') { + s = englishPhrase.substring(2) + "chay"; + + } else if (ch=='q') { + s = englishPhrase.substring(2) + "quay"; + + } else if (startWithSqu.matcher(englishPhrase).find()) { + s = englishPhrase.substring(3) + "squay"; +// System.out.println(s); + + } else if (startWithThr.matcher(englishPhrase).find()) { + s = englishPhrase.substring(3) + "thray"; +// System.out.println(s); + + } else if (startWithTh.matcher(englishPhrase).find()) { + s = englishPhrase.substring(2) + "thay"; +// System.out.println(s); + + } else if (startWithSch.matcher(englishPhrase).find()) { + s = englishPhrase.substring(3) + "schay"; +// System.out.println(s); + + } else if (startWithYt.matcher(englishPhrase).find()) { + s = englishPhrase + "ay"; +// System.out.println(s); + + } else if (startWithXr.matcher(englishPhrase).find()) { + s = englishPhrase + "ay"; +// System.out.println(s); + + } else { + s = englishPhrase.substring(1) + englishPhrase.charAt(0) + "ay"; +// System.out.println(s); + } + return s; } } diff --git a/clean-code-challanges/src/test/java/PigLatinTranslatorTest.java b/clean-code-challanges/src/test/java/PigLatinTranslatorTest.java index 8fed0ee..32ed377 100644 --- a/clean-code-challanges/src/test/java/PigLatinTranslatorTest.java +++ b/clean-code-challanges/src/test/java/PigLatinTranslatorTest.java @@ -1,3 +1,6 @@ +package test.java; + +import main.java.PigLatinTranslator; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; @@ -67,5 +70,4 @@ public PigLatinTranslatorTest(String englishPhrase, String pigLatinTranslation) public void test() { assertEquals(pigLatinTranslation, new PigLatinTranslator().translate(englishPhrase)); } - } diff --git a/clean-code.iml b/clean-code.iml index 3b18d94..682987b 100644 --- a/clean-code.iml +++ b/clean-code.iml @@ -4,6 +4,7 @@ + @@ -17,5 +18,15 @@ + + + + + + + + + + \ No newline at end of file From f1895388e9c1d678f6b7d7a679c9ca171a9e60f7 Mon Sep 17 00:00:00 2001 From: Sascha Date: Sun, 20 Sep 2020 17:22:21 +0200 Subject: [PATCH 2/5] Initial-CodeII --- .../src/main/java/PigLatinTranslator.java | 8 -------- 1 file changed, 8 deletions(-) diff --git a/clean-code-challanges/src/main/java/PigLatinTranslator.java b/clean-code-challanges/src/main/java/PigLatinTranslator.java index d8252af..3ed7c62 100644 --- a/clean-code-challanges/src/main/java/PigLatinTranslator.java +++ b/clean-code-challanges/src/main/java/PigLatinTranslator.java @@ -37,7 +37,6 @@ public static String translate (String englishPhrase){ String s; if (ch=='a' || ch=='e' || ch=='i' || ch=='o' || ch=='u') { s = englishPhrase + "ay"; -// System.out.println(s); } else if (ch=='c') { s = englishPhrase.substring(2) + "chay"; @@ -46,31 +45,24 @@ public static String translate (String englishPhrase){ } else if (startWithSqu.matcher(englishPhrase).find()) { s = englishPhrase.substring(3) + "squay"; -// System.out.println(s); } else if (startWithThr.matcher(englishPhrase).find()) { s = englishPhrase.substring(3) + "thray"; -// System.out.println(s); } else if (startWithTh.matcher(englishPhrase).find()) { s = englishPhrase.substring(2) + "thay"; -// System.out.println(s); } else if (startWithSch.matcher(englishPhrase).find()) { s = englishPhrase.substring(3) + "schay"; -// System.out.println(s); } else if (startWithYt.matcher(englishPhrase).find()) { s = englishPhrase + "ay"; -// System.out.println(s); } else if (startWithXr.matcher(englishPhrase).find()) { s = englishPhrase + "ay"; -// System.out.println(s); } else { s = englishPhrase.substring(1) + englishPhrase.charAt(0) + "ay"; -// System.out.println(s); } return s; } From 248c83ae42a7831efecde1c18581d3fce38c54c1 Mon Sep 17 00:00:00 2001 From: Sascha Date: Sun, 20 Sep 2020 17:25:03 +0200 Subject: [PATCH 3/5] Initial-CodeII --- clean-code-challanges/src/main/java/PigLatinTranslator.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/clean-code-challanges/src/main/java/PigLatinTranslator.java b/clean-code-challanges/src/main/java/PigLatinTranslator.java index 3ed7c62..a9d0deb 100644 --- a/clean-code-challanges/src/main/java/PigLatinTranslator.java +++ b/clean-code-challanges/src/main/java/PigLatinTranslator.java @@ -32,8 +32,6 @@ public static String translate (String englishPhrase){ Pattern startWithYt = Pattern.compile("^yt"); Pattern startWithXr = Pattern.compile("^xr"); - String str = Character.toString(ch); - String s; if (ch=='a' || ch=='e' || ch=='i' || ch=='o' || ch=='u') { s = englishPhrase + "ay"; From 788ce6867f2035337e66d457549e1609f5f53281 Mon Sep 17 00:00:00 2001 From: Sascha Date: Mon, 19 Oct 2020 21:07:26 +0200 Subject: [PATCH 4/5] =?UTF-8?q?L=C3=B6sungen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/Anagram.java | 28 ++++++++++++++++++- .../src/main/java/IsogramChecker.java | 16 ++++++++--- 2 files changed, 39 insertions(+), 5 deletions(-) diff --git a/clean-code-challanges/src/main/java/Anagram.java b/clean-code-challanges/src/main/java/Anagram.java index 9930cd0..b095bba 100644 --- a/clean-code-challanges/src/main/java/Anagram.java +++ b/clean-code-challanges/src/main/java/Anagram.java @@ -1,5 +1,10 @@ +package main.java; + +import java.util.ArrayList; +import java.util.Arrays; import java.util.List; + /** * Given a word and a list of possible anagrams, select the correct sublist. * @@ -7,11 +12,32 @@ */ public class Anagram { + private String word; + public Anagram(String word) { + this.word = word; } + public String sortLetters(String word){ + char[] letterArray = word.toLowerCase().toCharArray(); + Arrays.sort(letterArray); + String sorted = new String (letterArray); + return sorted; + } public List match(List candidates) { - return null; + List matchingWords = new ArrayList<>(); + + String sortedWord = sortLetters(this.word); + + for (String word: candidates){ + String sortedWordMatchingList = sortLetters(word); + if (sortedWord.equals(sortedWordMatchingList) && !this.word.toLowerCase().equals(word.toLowerCase())){ + matchingWords.add(word); + } + } + return matchingWords; } } + + diff --git a/clean-code-challanges/src/main/java/IsogramChecker.java b/clean-code-challanges/src/main/java/IsogramChecker.java index 00d4c74..1d1bd4c 100644 --- a/clean-code-challanges/src/main/java/IsogramChecker.java +++ b/clean-code-challanges/src/main/java/IsogramChecker.java @@ -1,3 +1,5 @@ +package main.java; + /** * Determine if a word or phrase is an isogram. * @@ -13,10 +15,16 @@ * * The word isograms, however, is not an isogram, because the s repeats. */ -class IsogramChecker { +public class IsogramChecker { - boolean isIsogram(String phrase) { - throw new UnsupportedOperationException("Delete this statement and write your own implementation."); - } + public boolean isIsogram(String phrase) { + //throw new UnsupportedOperationException("Delete this statement and write your own implementation."); + //} + if (phrase.length() > 1) { + phrase = phrase.toLowerCase().replaceAll(" ", "").replaceAll("-", ""); + return phrase.length() == phrase.chars().distinct().count(); + } + return true; + } } From d94505522a93fb4ea803b1f7504e957e7f2b0ca4 Mon Sep 17 00:00:00 2001 From: Sascha Date: Mon, 19 Oct 2020 21:08:17 +0200 Subject: [PATCH 5/5] =?UTF-8?q?L=C3=B6sungen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/Acronym.java | 25 +++++++++++++------ 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/clean-code-challanges/src/main/java/Acronym.java b/clean-code-challanges/src/main/java/Acronym.java index 5e00939..0b2d863 100644 --- a/clean-code-challanges/src/main/java/Acronym.java +++ b/clean-code-challanges/src/main/java/Acronym.java @@ -1,18 +1,27 @@ +package main.java; + +import static java.util.Objects.requireNonNull; +import static java.util.stream.Collectors.joining; /** * Convert a phrase to its acronym. - * + *

* Techies love their TLA (Three Letter Acronyms)! - * + *

* Help generate some jargon by writing a program that converts a long name like Portable Network Graphics to its acronym (PNG). */ -class Acronym { +public class Acronym { - Acronym(String phrase) { + String insert; + public Acronym(String phrase) { + insert = phrase; } - - String get() { - return null; + public String get() { + insert = insert.replaceAll("[-]", " "); + String[] words = insert.replaceAll("[^a-zA-Z ]", "").toUpperCase().split("\\s+"); + String acronym = ""; + for (int i = 0; i < words.length; i++) + acronym += words[i].charAt(0); + return acronym; } - }