+
\ No newline at end of file
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;
}
-
}
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;
+ }
}
diff --git a/clean-code-challanges/src/main/java/PigLatinTranslator.java b/clean-code-challanges/src/main/java/PigLatinTranslator.java
index 602a04d..a9d0deb 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,46 @@
*/
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 s;
+ if (ch=='a' || ch=='e' || ch=='i' || ch=='o' || ch=='u') {
+ s = englishPhrase + "ay";
+ } 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";
+
+ } else if (startWithThr.matcher(englishPhrase).find()) {
+ s = englishPhrase.substring(3) + "thray";
+
+ } else if (startWithTh.matcher(englishPhrase).find()) {
+ s = englishPhrase.substring(2) + "thay";
+
+ } else if (startWithSch.matcher(englishPhrase).find()) {
+ s = englishPhrase.substring(3) + "schay";
+
+ } else if (startWithYt.matcher(englishPhrase).find()) {
+ s = englishPhrase + "ay";
+
+ } else if (startWithXr.matcher(englishPhrase).find()) {
+ s = englishPhrase + "ay";
+
+ } else {
+ s = englishPhrase.substring(1) + englishPhrase.charAt(0) + "ay";
+ }
+ 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