diff --git a/.vscode/settings.json b/.vscode/settings.json index 06cce546..a6950c51 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -17,7 +17,6 @@ "files.autoSave": "afterDelay", "screencastMode.onlyKeyboardShortcuts": true, "terminal.integrated.fontSize": 18, - "workbench.activityBar.visible": true, "workbench.colorTheme": "Visual Studio Dark", "workbench.fontAliasing": "antialiased", "workbench.statusBar.visible": true, diff --git a/javacodechallenges/src/main/java/com/linkedin/javacodechallenges/App.java b/javacodechallenges/src/main/java/com/linkedin/javacodechallenges/App.java index 18426f65..95f832e1 100644 --- a/javacodechallenges/src/main/java/com/linkedin/javacodechallenges/App.java +++ b/javacodechallenges/src/main/java/com/linkedin/javacodechallenges/App.java @@ -2,6 +2,7 @@ import java.util.Map; import java.util.Scanner; +import java.util.concurrent.atomic.AtomicInteger; public class App { public static final Map letterPoints = Map.ofEntries(Map.entry('A', 1), @@ -14,7 +15,34 @@ public class App { Map.entry('Z', 10)); public static int wordScoreCalculator(String word) { - return 0; + int score = 0; + char[] wordChars = word.toUpperCase().toCharArray(); + for (Character c:wordChars){ + int letterPoint = letterPoints.entrySet().stream() + .filter(entry -> entry.getKey().equals(c)) + .map(entry -> entry.getValue()) + .findFirst() + .orElse(0); + score += letterPoint; + } + return score; + } + + public static int lettersCalculatorVersion2(String word){ + AtomicInteger score = new AtomicInteger(0); + + word.toUpperCase().chars() + .filter(Character::isAlphabetic) + //containsKey() should contain an object, not integer + .mapToObj(letter -> (char) letter) + .forEachOrdered(letter -> { + if (letterPoints.containsKey(letter)){ + score.getAndAdd(letterPoints.get(letter)); + }else{ + System.out.println("Looks like we need to add "+ letter + "to the list"); + } + }); + return score.getPlain(); } public static void main(String[] args) { @@ -23,7 +51,7 @@ public static void main(String[] args) { Scanner sc = new Scanner(System.in); String word = sc.nextLine(); System.out.println("Your word " + word + " will earn " - + wordScoreCalculator(word)); + + lettersCalculatorVersion2(word)); sc.close(); } diff --git a/javacodechallenges/target/classes/com/linkedin/javacodechallenges/App.class b/javacodechallenges/target/classes/com/linkedin/javacodechallenges/App.class index 19de7ef7..f581f9cb 100644 Binary files a/javacodechallenges/target/classes/com/linkedin/javacodechallenges/App.class and b/javacodechallenges/target/classes/com/linkedin/javacodechallenges/App.class differ