From 0723f0889ac305876e3a3a60db9a9b69f43c2c7e Mon Sep 17 00:00:00 2001 From: Urs Heusser Date: Sat, 10 Sep 2022 11:38:52 +0200 Subject: [PATCH 1/3] =?UTF-8?q?test=20f=C3=BCr=20pullrequest?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- clean-code-challanges/src/main/java/Acronym.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/clean-code-challanges/src/main/java/Acronym.java b/clean-code-challanges/src/main/java/Acronym.java index 5e00939..1801a77 100644 --- a/clean-code-challanges/src/main/java/Acronym.java +++ b/clean-code-challanges/src/main/java/Acronym.java @@ -8,7 +8,7 @@ class Acronym { Acronym(String phrase) { - +String test = "test"; } String get() { From 777f471b6c1dcd87507df3679f766a160297d9bd Mon Sep 17 00:00:00 2001 From: Urs Heusser Date: Sun, 11 Sep 2022 18:11:32 +0200 Subject: [PATCH 2/3] Anagram first try --- .../src/main/java/Anagram.java | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/clean-code-challanges/src/main/java/Anagram.java b/clean-code-challanges/src/main/java/Anagram.java index 9930cd0..bda39c9 100644 --- a/clean-code-challanges/src/main/java/Anagram.java +++ b/clean-code-challanges/src/main/java/Anagram.java @@ -1,17 +1,37 @@ +import java.util.ArrayList; +import java.util.Arrays; import java.util.List; +import java.util.Locale; /** * Given a word and a list of possible anagrams, select the correct sublist. + * Wählen Sie aus einem gegebenen Wort und einer Liste möglicher Anagramme die richtige Teilliste aus. * * Given "listen" and a list of candidates like "enlists" "google" "inlets" "banana" the program should return a list containing "inlets". + * Bei "listen" und einer Liste von Kandidaten wie "enlists" "google" "inlets" "banana" sollte das Programm eine Liste mit "inlets" zurückgeben. */ public class Anagram { + private final String word; public Anagram(String word) { + this.word = word; + } + String sortLetters(String word) { + char[] letterArray = word.toLowerCase(Locale.ROOT).toCharArray(); + Arrays.sort(letterArray); + return new String(letterArray); } public List match(List candidates) { - return null; + List matchingWords = new ArrayList<>(); + String sortedWords = sortLetters(this.word); + for(String word : candidates) { + String sortedWordToMatch = sortLetters(word); + if(sortedWords.equals(sortedWordToMatch) && !this.word.toLowerCase(Locale.ROOT).equals(word.toLowerCase(Locale.ROOT))) { + matchingWords.add(word); + } + } + return matchingWords; } } From bfbdabe952c8be044c8cfa2c2918c2f84b120887 Mon Sep 17 00:00:00 2001 From: Urs Heusser Date: Sat, 24 Sep 2022 08:52:28 +0200 Subject: [PATCH 3/3] cleancode: variable word zu candidate, check if word equally before sort --- clean-code-challanges/src/main/java/Anagram.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/clean-code-challanges/src/main/java/Anagram.java b/clean-code-challanges/src/main/java/Anagram.java index bda39c9..0fdf9af 100644 --- a/clean-code-challanges/src/main/java/Anagram.java +++ b/clean-code-challanges/src/main/java/Anagram.java @@ -26,10 +26,12 @@ String sortLetters(String word) { public List match(List candidates) { List matchingWords = new ArrayList<>(); String sortedWords = sortLetters(this.word); - for(String word : candidates) { - String sortedWordToMatch = sortLetters(word); - if(sortedWords.equals(sortedWordToMatch) && !this.word.toLowerCase(Locale.ROOT).equals(word.toLowerCase(Locale.ROOT))) { - matchingWords.add(word); + for(String candiate : candidates) { + if(!this.word.toLowerCase(Locale.ROOT).equals(candiate.toLowerCase(Locale.ROOT))) { + String sortedWordToMatch = sortLetters(candiate); + if(sortedWords.equals(sortedWordToMatch)) { + matchingWords.add(candiate); + } } } return matchingWords;