A sentence
is said to be pangram, if for a given alphabet, sentence contain every
character of alphabet at least once.
Following
are some of the pangrams in English alphabet, since they contain each alphabet
of English at least once.
The quick
brown fox jumps over the lazy dog.
Pack my box
with five dozen liquor jugs.
Sphinx of
black quartz, judge my vow.
Waltz,
nymph, for quick jigs vex Bud.
Mr. Jock, TV
quiz PhD, bags few lynx.
import java.util.BitSet; import java.util.Objects; public class Pangram { public static boolean isPangram(String str) { Objects.nonNull(str); if (str.length() < 26) return false; BitSet bits = new BitSet(26); String lowerCase = str.toLowerCase(); for (int i = 0; i < str.length(); i++) { int val = lowerCase.charAt(i) - 'a'; if (val > -1 && val < 26) bits.set(val); } return (bits.cardinality() == 26); } }
Following is
the junit test case for above application.
import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import org.junit.Test; public class PangramTest { @Test public void test1() { assertTrue(Pangram .isPangram("The quick brown fox jumps over the lazy dog.")); assertTrue(Pangram .isPangram("Pack my box with five dozen liquor jugs.")); assertTrue(Pangram.isPangram("Sphinx of black quartz, judge my vow.")); assertTrue(Pangram.isPangram("Waltz, nymph, for quick jigs vex Bud.")); assertTrue(Pangram.isPangram("Mr. Jock, TV quiz PhD, bags few lynx.")); assertFalse(Pangram .isPangram("Hello, How are you, i am fine what about you")); } @Test(expected = NullPointerException.class) public void test2() { assertFalse(Pangram.isPangram(null)); } }
No comments:
Post a Comment