Class StringHelper


  • public final class StringHelper
    extends Object
    A collection of useful static methods to deal with strings.
    Since:
    1.0
    Author:
    Mohammed Shaik Hussain Ali
    See Also:
    String
    • Method Summary

      Modifier and Type Method Description
      static boolean areEqual​(String string1, String string2)
      Returns true if the passed values are equal, ignoring the case, false otherwise.
      static boolean areEqual​(String string1, String string2, boolean lenient)
      Returns true if the passed values are equal, false otherwise.
      static String getNullSafe​(String string)
      Returns a non-null string, even if the object being passed is a null string.
      static boolean isBlank​(String string)
      Returns true if the passed value is an empty string, false otherwise.
      static boolean isOnlyDigits​(String string)
      Returns true if the passed string contains only digits, false otherwise.
      static boolean isPalindrome​(String string)
      Returns true if the passed string is a palindrome, ignoring the case, false otherwise.
      static boolean isPalindrome​(String string, boolean lenient)
      Returns true if the passed string is a palindrome, false otherwise.
    • Method Detail

      • getNullSafe

        public static String getNullSafe​(String string)
        Returns a non-null string, even if the object being passed is a null string.

        If the passed-in object is a non-null string, then it is returned as-is.

        Example usage:
              String str1 = "Hello";
              String str2 = null;
        
              String str3 = StringHelper.getNullSafe(str1);
        
              String str4 = StringHelper.getNullSafe(str2);
        
              // str3 now contains the string: "Hello"
              // str4 now contains the string: ""
         
        Parameters:
        string - The string to safeguard against null.
        Returns:
        If str is null then "" (empty string).
        Since:
        1.0
      • isBlank

        public static boolean isBlank​(String string)
        Returns true if the passed value is an empty string, false otherwise.

        The value is deemed to be an empty string if it is either:
        Example usage:
             StringHelper.isBlank(null)          = true
             StringHelper.isBlank("")            = true
             StringHelper.isBlank(" ")           = true
             StringHelper.isBlank("something ")  = false
         
        Parameters:
        string - The value to test.
        Returns:
        true if the passed value is an empty string, false otherwise.
        Since:
        1.0
      • areEqual

        public static boolean areEqual​(String string1,
                                       String string2)
        Returns true if the passed values are equal, ignoring the case, false otherwise.

        Convenience method equivalent to StringHelper.areEqual(string1, string2, true)
        Parameters:
        string1 - to compare
        string2 - to compare
        Returns:
        whether two strings are equal
        Since:
        1.0
        See Also:
        areEqual(String, String, boolean)
      • areEqual

        public static boolean areEqual​(String string1,
                                       String string2,
                                       boolean lenient)
        Returns true if the passed values are equal, false otherwise.

        • When the lenient flag is set to true, the comparison will ignore the case and trim the strings before comparing; the two strings are considered equal if,
        • When the lenient flag is set to false, the two strings are considered equal if,
          • Both strings are not null
          • Both strings represent the same sequence of characters

        Example usage:
             StringHelper.areEqual(null, null, true)       = true
             StringHelper.areEqual(null, "", true)         = true
             StringHelper.areEqual("", null, true)         = true
             StringHelper.areEqual("", "", true)           = true
             StringHelper.areEqual("   ", "", true)        = true
             StringHelper.areEqual(" abc", "abc ", true)   = true
             StringHelper.areEqual("", "abc", true)        = false
             StringHelper.areEqual("ab c", "abc", true)    = false
             StringHelper.areEqual("ABC", "abc", true)     = true
             StringHelper.areEqual("abc", "abc", true)     = true
        
             StringHelper.areEqual(null, null, false)      = false
             StringHelper.areEqual(null, "", false)        = false
             StringHelper.areEqual("", null, false)        = false
             StringHelper.areEqual("", "", false)          = true
             StringHelper.areEqual("   ", "", false)       = false
             StringHelper.areEqual(" abc", "abc ", false)  = false
             StringHelper.areEqual("", "abc", false)       = false
             StringHelper.areEqual("ab c", "abc", false)   = false
             StringHelper.areEqual("ABC", "abc", false)    = false
             StringHelper.areEqual("abc", "abc", false)    = true
         
        Parameters:
        string1 - to compare
        string2 - to compare
        lenient - whether to be lenient or not
        Returns:
        whether two strings are equal
        Since:
        2.1.0
        See Also:
        String.equalsIgnoreCase(String), String.equals(Object)
      • isOnlyDigits

        public static boolean isOnlyDigits​(String string)
        Returns true if the passed string contains only digits, false otherwise.

        Example usage:
             StringHelper.isOnlyDigits(null)          = false
             StringHelper.isOnlyDigits("")            = false
             StringHelper.isOnlyDigits(" ")           = false
             StringHelper.isOnlyDigits("something ")  = false
             StringHelper.isOnlyDigits("11.67")       = false
             StringHelper.isOnlyDigits("17650")       = true
         
        Parameters:
        string - to check
        Returns:
        whether the string contains only digits
        Since:
        1.0
        See Also:
        String.matches(String)
      • isPalindrome

        public static boolean isPalindrome​(String string)
        Returns true if the passed string is a palindrome, ignoring the case, false otherwise.

        Convenience method equivalent to StringHelper.isPalindrome(string, true)
        Parameters:
        string - to check
        Returns:
        if the string is a Palindrome
        Since:
        2.1.0
        See Also:
        isPalindrome(String, boolean)
      • isPalindrome

        public static boolean isPalindrome​(String string,
                                           boolean lenient)
        Returns true if the passed string is a palindrome, false otherwise.

        A palindrome is a word, phrase, number, or other sequence of characters which reads the same backward or forward, such as madam or kayak.

        Convenience method equivalent to StringHelper.areEqual(string, string.reverse, flag)

        Example usage:
             StringHelper.isPalindrome(null, true)      = true
             StringHelper.isPalindrome("", true)        = true
             StringHelper.isPalindrome("   ", true)     = true
             StringHelper.isPalindrome(" aba", true)    = true
             StringHelper.isPalindrome("aba", true)     = true
             StringHelper.isPalindrome("mAdAm", true)   = true
             StringHelper.isPalindrome("madAm", true)   = true
             StringHelper.isPalindrome("madam", true)   = true
             StringHelper.isPalindrome("Madam", true)   = true
             StringHelper.isPalindrome("hello", true)   = false
        
             StringHelper.isPalindrome(null, false)     = false
             StringHelper.isPalindrome("", false)       = true
             StringHelper.isPalindrome("   ", false)    = true
             StringHelper.isPalindrome(" aba", false)   = false
             StringHelper.isPalindrome("aba", false)    = true
             StringHelper.isPalindrome("mAdAm", false)  = true
             StringHelper.isPalindrome("madAm", false)  = false
             StringHelper.isPalindrome("madam", false)  = true
             StringHelper.isPalindrome("Madam", false)  = false
             StringHelper.isPalindrome("hello", false)  = false
         
        Parameters:
        string - to check
        lenient - whether to be lenient or not
        Returns:
        if the string is a Palindrome
        Since:
        2.1.0
        See Also:
        areEqual(String, String, boolean), Palindrome (Wikipedia)