diff --git a/strings/CharactersSame.java b/strings/CharactersSame.java new file mode 100644 index 000000000..d88c03209 --- /dev/null +++ b/strings/CharactersSame.java @@ -0,0 +1,29 @@ +package strings; + +public class CharactersSame { + + /** + * Driver Code + */ + public static void main(String[] args) { + assert isAllCharactersSame(""); + assert !isAllCharactersSame("aab"); + assert isAllCharactersSame("aaa"); + assert isAllCharactersSame("11111"); + } + + /** + * check if all the characters of a string are same + * + * @param s the string to check + * @return {@code true} if all characters of a string are same, otherwise {@code false} + */ + public static boolean isAllCharactersSame(String s) { + for (int i = 1, length = s.length(); i < length; ++i) { + if (s.charAt(i) != s.charAt(0)) { + return false; + } + } + return true; + } +} diff --git a/strings/CheckAnagrams.java b/strings/CheckAnagrams.java new file mode 100644 index 000000000..46642e01e --- /dev/null +++ b/strings/CheckAnagrams.java @@ -0,0 +1,32 @@ +package strings; + +import java.util.Arrays; + +/** + * Two strings are anagrams if they are made of the same letters + * arranged differently (ignoring the case). + */ +public class CheckAnagrams { + public static void main(String[] args) { + assert isAnagrams("Silent", "Listen"); + assert isAnagrams("This is a string", "Is this a string"); + assert !isAnagrams("There", "Their"); + } + + /** + * Check if two strings are anagrams or not + * + * @param s1 the first string + * @param s2 the second string + * @return {@code true} if two string are anagrams, otherwise {@code false} + */ + public static boolean isAnagrams(String s1, String s2) { + s1 = s1.toLowerCase(); + s2 = s2.toLowerCase(); + char[] values1 = s1.toCharArray(); + char[] values2 = s2.toCharArray(); + Arrays.sort(values1); + Arrays.sort(values2); + return new String(values1).equals(new String(values2)); + } +} diff --git a/strings/Lower.java b/strings/Lower.java new file mode 100644 index 000000000..15cc027eb --- /dev/null +++ b/strings/Lower.java @@ -0,0 +1,30 @@ +package strings; + +public class Lower { + + /** + * Driver Code + */ + public static void main(String[] args) { + String[] strings = {"ABC", "ABC123", "abcABC", "abc123ABC"}; + for (String s : strings) { + assert toLowerCase(s).equals(s.toLowerCase()); + } + } + + /** + * Converts all of the characters in this {@code String} to lower case + * + * @param s the string to convert + * @return the {@code String}, converted to lowercase. + */ + public static String toLowerCase(String s) { + char[] values = s.toCharArray(); + for (int i = 0; i < values.length; ++i) { + if (Character.isLetter(values[i]) && Character.isUpperCase(values[i])) { + values[i] = Character.toLowerCase(values[i]); + } + } + return new String(values); + } +} diff --git a/strings/Pangram.java b/strings/Pangram.java new file mode 100644 index 000000000..a18cb12c7 --- /dev/null +++ b/strings/Pangram.java @@ -0,0 +1,39 @@ +package strings; + +/** + * Wikipedia: https://en.wikipedia.org/wiki/Pangram + */ +public class Pangram { + + /** + * Driver Code + */ + public static void main(String[] args) { + assert isPangram("The quick brown fox jumps over the lazy dog"); + assert !isPangram("The quick brown fox jumps over the azy dog"); /* not exists l character */ + } + + /** + * Check if a string is a pangram string or not + * + * @param s string to check + * @return {@code true} if given string is pangram, otherwise {@code false} + */ + public static boolean isPangram(String s) { + boolean[] marked = new boolean[26]; /* by default all letters don't exists */ + char[] values = s.toCharArray(); + for (char value : values) { + if (Character.isLetter(value)) { + int index = Character.isUpperCase(value) ? value - 'A' : value - 'a'; + marked[index] = true; /* mark current character exists */ + } + } + + for (boolean b : marked) { + if (!b) { + return false; + } + } + return true; + } +} diff --git a/strings/Upper.java b/strings/Upper.java new file mode 100644 index 000000000..ef5a616d0 --- /dev/null +++ b/strings/Upper.java @@ -0,0 +1,30 @@ +package strings; + +public class Upper { + + /** + * Driver Code + */ + public static void main(String[] args) { + String[] strings = {"ABC", "ABC123", "abcABC", "abc123ABC"}; + for (String s : strings) { + assert toUpperCase(s).equals(s.toUpperCase()); + } + } + + /** + * Converts all of the characters in this {@code String} to upper case + * + * @param s the string to convert + * @return the {@code String}, converted to uppercase. + */ + public static String toUpperCase(String s) { + char[] values = s.toCharArray(); + for (int i = 0; i < values.length; ++i) { + if (Character.isLetter(values[i]) && Character.isLowerCase(values[i])) { + values[i] = Character.toUpperCase(values[i]); + } + } + return new String(values); + } +}