From b8ae8ace4af9093b66348c21822667bfe14cb751 Mon Sep 17 00:00:00 2001 From: kartiksingla Date: Thu, 23 Aug 2018 21:44:01 +0530 Subject: [PATCH 1/3] [BAEL-2141] - How to check if a string contains all the letters of the alphabet? --- .../string/EnglishAlphabetLetters.java | 35 +++++++++++++++++++ .../string/EnglishAlphabetLettersTest.java | 20 +++++++++++ 2 files changed, 55 insertions(+) create mode 100644 algorithms/src/main/java/com/baeldung/algorithms/string/EnglishAlphabetLetters.java create mode 100644 algorithms/src/test/java/com/baeldung/algorithms/string/EnglishAlphabetLettersTest.java diff --git a/algorithms/src/main/java/com/baeldung/algorithms/string/EnglishAlphabetLetters.java b/algorithms/src/main/java/com/baeldung/algorithms/string/EnglishAlphabetLetters.java new file mode 100644 index 0000000000..2dd1fdcb75 --- /dev/null +++ b/algorithms/src/main/java/com/baeldung/algorithms/string/EnglishAlphabetLetters.java @@ -0,0 +1,35 @@ +package com.baeldung.algorithms.string; + +public class EnglishAlphabetLetters { + + public static boolean checkStringForAllTheLetters(String input) { + boolean[] visited = new boolean[26]; + + int index = 0; + + for (int id = 0; id < input.length(); id++) { + if ('a' <= input.charAt(id) && input.charAt(id) <= 'z') { + index = input.charAt(id) - 'a'; + } else if ('A' <= input.charAt(id) && input.charAt(id) <= 'Z') { + index = input.charAt(id) - 'A'; + } + visited[index] = true; + } + + for (int id = 0; id < 26; id++) { + if (!visited[id]) { + return false; + } + } + return true; + } + + public static boolean checkStringForAllLetterUsingStream(String input) { + long c = input.toLowerCase().chars().filter(ch -> ch >= 'a' && ch <= 'z').distinct().count(); + return c == 26; + } + + public static void main(String[] args) { + checkStringForAllLetterUsingStream("intit"); + } +} \ No newline at end of file diff --git a/algorithms/src/test/java/com/baeldung/algorithms/string/EnglishAlphabetLettersTest.java b/algorithms/src/test/java/com/baeldung/algorithms/string/EnglishAlphabetLettersTest.java new file mode 100644 index 0000000000..54335c62d2 --- /dev/null +++ b/algorithms/src/test/java/com/baeldung/algorithms/string/EnglishAlphabetLettersTest.java @@ -0,0 +1,20 @@ +package com.baeldung.algorithms.string; + +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +public class EnglishAlphabetLettersTest { + + @Test + void givenString_whenContainsAllCharacter_thenTrue() { + String input = "Farmer jack realized that big yellow quilts were expensive"; + Assertions.assertTrue(EnglishAlphabetLetters.checkStringForAllTheLetters(input)); + } + + @Test + void givenString_whenContainsAllCharacter_thenUsingStreamExpectTrue() { + String input = "Farmer jack realized that big yellow quilts were expensive"; + Assertions.assertTrue(EnglishAlphabetLetters.checkStringForAllLetterUsingStream(input)); + } + +} From 002760a3be31c29ca5bccfcb2a50cffa277c07d9 Mon Sep 17 00:00:00 2001 From: kartiksingla Date: Thu, 23 Aug 2018 21:58:37 +0530 Subject: [PATCH 2/3] Fixed Unit test case file name for [BAEL-2141] --- ...phabetLettersTest.java => EnglishAlphabetLettersUnitTest.java} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename algorithms/src/test/java/com/baeldung/algorithms/string/{EnglishAlphabetLettersTest.java => EnglishAlphabetLettersUnitTest.java} (100%) diff --git a/algorithms/src/test/java/com/baeldung/algorithms/string/EnglishAlphabetLettersTest.java b/algorithms/src/test/java/com/baeldung/algorithms/string/EnglishAlphabetLettersUnitTest.java similarity index 100% rename from algorithms/src/test/java/com/baeldung/algorithms/string/EnglishAlphabetLettersTest.java rename to algorithms/src/test/java/com/baeldung/algorithms/string/EnglishAlphabetLettersUnitTest.java From 1846a1e441ba0e06117956a71c21dd4747ceda71 Mon Sep 17 00:00:00 2001 From: kartiksingla Date: Thu, 23 Aug 2018 22:04:38 +0530 Subject: [PATCH 3/3] Fixed Unit test case file name for [BAEL-2141] --- .../algorithms/string/EnglishAlphabetLettersUnitTest.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/algorithms/src/test/java/com/baeldung/algorithms/string/EnglishAlphabetLettersUnitTest.java b/algorithms/src/test/java/com/baeldung/algorithms/string/EnglishAlphabetLettersUnitTest.java index 54335c62d2..54863cddc8 100644 --- a/algorithms/src/test/java/com/baeldung/algorithms/string/EnglishAlphabetLettersUnitTest.java +++ b/algorithms/src/test/java/com/baeldung/algorithms/string/EnglishAlphabetLettersUnitTest.java @@ -3,7 +3,7 @@ package com.baeldung.algorithms.string; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; -public class EnglishAlphabetLettersTest { +public class EnglishAlphabetLettersUnitTest { @Test void givenString_whenContainsAllCharacter_thenTrue() {