diff --git a/clean-code-challanges/src/main/java/Acronym.java b/clean-code-challanges/src/main/java/Acronym.java index 5e00939..58c92b7 100644 --- a/clean-code-challanges/src/main/java/Acronym.java +++ b/clean-code-challanges/src/main/java/Acronym.java @@ -1,3 +1,4 @@ +import java.util.Locale; /** * Convert a phrase to its acronym. * @@ -6,13 +7,31 @@ * Help generate some jargon by writing a program that converts a long name like Portable Network Graphics to its acronym (PNG). */ class Acronym { - + private String phrase; Acronym(String phrase) { - + this.phrase = phrase; } String get() { - return null; + this.phrase = replaceSpecialChars(); + this.phrase = cleanupSpaces(); + this.phrase = getFirstCharsAfterSpaces(); + return this.phrase; + } + + private String getFirstCharsAfterSpaces() { + String resultString = ""; + String[] words = phrase.split(" "); + for(String word : words) { + resultString += word.substring(0,1).toUpperCase(Locale.ROOT); + } + return resultString; + } + private String replaceSpecialChars() { + return phrase.replaceAll("[^a-zA-Z0-9']", " "); + } + private String cleanupSpaces() { + return phrase.replaceAll("\\s{2,}", " ").trim(); } }