Class Strings


  • public class Strings
    extends java.lang.Object
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static java.lang.String arrayToCommaDelimitedString​(java.lang.Object[] arr)
      Convenience method to return a String array as a CSV String.
      static java.lang.String arrayToDelimitedString​(java.lang.Object[] arr, java.lang.String delim)
      Convenience method to return a String array as a delimited (e.g.
      static void arrayToDelimitedString​(java.lang.Object[] arr, java.lang.String delim, java.lang.StringBuilder sb)  
      static java.lang.String capitalize​(java.lang.String str)
      Capitalize a String, changing the first letter to upper case as per Character.toUpperCase(char).
      static java.lang.String cleanTruncate​(java.lang.String s, int length)
      Truncates string to a length less than length.
      static java.lang.String coalesceToEmpty​(java.lang.String s)  
      static java.lang.String collectionToCommaDelimitedString​(java.lang.Iterable<?> coll)
      Convenience method to return a Collection as a CSV String.
      static java.lang.String collectionToDelimitedString​(java.lang.Iterable<?> coll, java.lang.String delim)
      Convenience method to return a Collection as a delimited (e.g.
      static java.lang.String collectionToDelimitedString​(java.lang.Iterable<?> coll, java.lang.String delim, java.lang.String prefix, java.lang.String suffix)
      Convenience method to return a Collection as a delimited (e.g.
      static void collectionToDelimitedString​(java.lang.Iterable<?> coll, java.lang.String delim, java.lang.String prefix, java.lang.String suffix, java.lang.StringBuilder sb)  
      static java.util.Set<java.lang.String> commaDelimitedListToSet​(java.lang.String str)
      Convenience method to convert a CSV string list to a set.
      static java.lang.String[] commaDelimitedListToStringArray​(java.lang.String str)
      Convert a CSV list into an array of Strings.
      static java.lang.String delete​(java.lang.String inString, java.lang.String pattern)
      Delete all occurrences of the given substring.
      static java.lang.String deleteAny​(java.lang.String inString, java.lang.String charsToDelete)
      Delete any character in a given String.
      static java.lang.String[] delimitedListToStringArray​(java.lang.String str, java.lang.String delimiter)
      Take a String which is a delimited list and convert it to a String array.
      static java.lang.String[] delimitedListToStringArray​(java.lang.String str, java.lang.String delimiter, java.lang.String charsToDelete)
      Take a String which is a delimited list and convert it to a String array.
      static java.lang.String format1Decimals​(double value, java.lang.String suffix)
      Format the double value with a single decimal points, trimming trailing '.0'.
      static boolean hasLength​(java.lang.CharSequence str)
      Check that the given CharSequence is neither null nor of length 0.
      static boolean hasLength​(java.lang.String str)
      Check that the given String is neither null nor of length 0.
      static boolean hasLength​(BytesReference bytesReference)
      Check that the given BytesReference is neither null nor of length 0 Note: Will return true for a BytesReference that purely consists of whitespace.
      static boolean hasText​(java.lang.CharSequence str)
      Check whether the given CharSequence has actual text.
      static boolean hasText​(java.lang.String str)
      Check whether the given String has actual text.
      static boolean isAllOrWildcard​(java.lang.String[] data)
      If an array only consists of zero or one element, which is "*" or "_all" return an empty array which is usually used as everything
      static boolean isEmpty​(java.lang.CharSequence str)
      Check that the given CharSequence is either null or of length 0.
      static boolean isNullOrEmpty​(java.lang.String s)  
      static java.lang.String padStart​(java.lang.String s, int minimumLength, char c)  
      static java.lang.String quote​(java.lang.String str)
      Quote the given String with single quotes.
      static java.lang.String replace​(java.lang.String inString, java.lang.String oldPattern, java.lang.String newPattern)
      Replace all occurrences of a substring within a string with another string.
      static void spaceify​(int spaces, java.lang.String from, java.lang.StringBuilder to)  
      static java.lang.String[] split​(java.lang.String toSplit, java.lang.String delimiter)
      Split a String at the first occurrence of the delimiter.
      static java.util.List<java.lang.String> splitSmart​(java.lang.String s, java.lang.String separator, boolean decode)
      Splits a backslash escaped string on the separator.
      static java.lang.String[] splitStringByCommaToArray​(java.lang.String s)
      Split the specified string by commas to an array.
      static java.lang.String substring​(java.lang.String s, int beginIndex, int endIndex)
      Return substring(beginIndex, endIndex) that is impervious to string length.
      static boolean substringMatch​(java.lang.CharSequence str, int index, java.lang.CharSequence substring)
      Test whether the given string matches the given substring at the given index.
      static java.util.Set<java.lang.String> tokenizeByCommaToSet​(java.lang.String s)
      Tokenize the specified string by commas to a set, trimming whitespace and ignoring empty tokens.
      static java.lang.String[] tokenizeToStringArray​(java.lang.String s, java.lang.String delimiters)
      Tokenize the given String into a String array via a StringTokenizer.
      static java.lang.String toString​(ToXContent toXContent)
      Return a String that is the json representation of the provided ToXContent.
      static java.lang.String toString​(ToXContent toXContent, boolean pretty, boolean human)
      Return a String that is the json representation of the provided ToXContent.
      static java.lang.String toString​(XContentBuilder xContentBuilder)
      Returns a string representation of the builder (only applicable for text based xcontent).
      static java.lang.String[] toStringArray​(java.util.Collection<java.lang.String> collection)
      Copy the given Collection into a String array.
      static byte[] toUTF8Bytes​(java.lang.CharSequence charSequence)  
      static byte[] toUTF8Bytes​(java.lang.CharSequence charSequence, org.apache.lucene.util.BytesRefBuilder spare)  
      static java.lang.String trimLeadingCharacter​(java.lang.String str, char leadingCharacter)
      Trim all occurrences of the supplied leading character from the given String.
      static boolean validFileName​(java.lang.String fileName)  
      static boolean validFileNameExcludingAstrix​(java.lang.String fileName)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • EMPTY_ARRAY

        public static final java.lang.String[] EMPTY_ARRAY
      • INVALID_FILENAME_CHARS

        public static final java.util.Set<java.lang.Character> INVALID_FILENAME_CHARS
    • Method Detail

      • spaceify

        public static void spaceify​(int spaces,
                                    java.lang.String from,
                                    java.lang.StringBuilder to)
                             throws java.lang.Exception
        Throws:
        java.lang.Exception
      • splitSmart

        public static java.util.List<java.lang.String> splitSmart​(java.lang.String s,
                                                                  java.lang.String separator,
                                                                  boolean decode)
        Splits a backslash escaped string on the separator.

        Current backslash escaping supported:
        \n \t \r \b \f are escaped the same as a Java String
        Other characters following a backslash are produced verbatim (\c => c)

        Parameters:
        s - the string to split
        separator - the separator to split on
        decode - decode backslash escaping
      • hasLength

        public static boolean hasLength​(java.lang.CharSequence str)
        Check that the given CharSequence is neither null nor of length 0. Note: Will return true for a CharSequence that purely consists of whitespace.
         StringUtils.hasLength(null) = false
         StringUtils.hasLength("") = false
         StringUtils.hasLength(" ") = true
         StringUtils.hasLength("Hello") = true
         
        Parameters:
        str - the CharSequence to check (may be null)
        Returns:
        true if the CharSequence is not null and has length
        See Also:
        hasText(String)
      • hasLength

        public static boolean hasLength​(BytesReference bytesReference)
        Check that the given BytesReference is neither null nor of length 0 Note: Will return true for a BytesReference that purely consists of whitespace.
        Parameters:
        bytesReference - the BytesReference to check (may be null)
        Returns:
        true if the BytesReference is not null and has length
        See Also:
        hasLength(CharSequence)
      • hasLength

        public static boolean hasLength​(java.lang.String str)
        Check that the given String is neither null nor of length 0. Note: Will return true for a String that purely consists of whitespace.
        Parameters:
        str - the String to check (may be null)
        Returns:
        true if the String is not null and has length
        See Also:
        hasLength(CharSequence)
      • isEmpty

        public static boolean isEmpty​(java.lang.CharSequence str)
        Check that the given CharSequence is either null or of length 0. Note: Will return false for a CharSequence that purely consists of whitespace.
         StringUtils.isEmpty(null) = true
         StringUtils.isEmpty("") = true
         StringUtils.isEmpty(" ") = false
         StringUtils.isEmpty("Hello") = false
         
        Parameters:
        str - the CharSequence to check (may be null)
        Returns:
        true if the CharSequence is either null or has a zero length
      • hasText

        public static boolean hasText​(java.lang.CharSequence str)
        Check whether the given CharSequence has actual text. More specifically, returns true if the string not null, its length is greater than 0, and it contains at least one non-whitespace character.
         StringUtils.hasText(null) = false
         StringUtils.hasText("") = false
         StringUtils.hasText(" ") = false
         StringUtils.hasText("12345") = true
         StringUtils.hasText(" 12345 ") = true
         
        Parameters:
        str - the CharSequence to check (may be null)
        Returns:
        true if the CharSequence is not null, its length is greater than 0, and it does not contain whitespace only
        See Also:
        Character.isWhitespace(char)
      • hasText

        public static boolean hasText​(java.lang.String str)
        Check whether the given String has actual text. More specifically, returns true if the string not null, its length is greater than 0, and it contains at least one non-whitespace character.
        Parameters:
        str - the String to check (may be null)
        Returns:
        true if the String is not null, its length is greater than 0, and it does not contain whitespace only
        See Also:
        hasText(CharSequence)
      • trimLeadingCharacter

        public static java.lang.String trimLeadingCharacter​(java.lang.String str,
                                                            char leadingCharacter)
        Trim all occurrences of the supplied leading character from the given String.
        Parameters:
        str - the String to check
        leadingCharacter - the leading character to be trimmed
        Returns:
        the trimmed String
      • substringMatch

        public static boolean substringMatch​(java.lang.CharSequence str,
                                             int index,
                                             java.lang.CharSequence substring)
        Test whether the given string matches the given substring at the given index.
        Parameters:
        str - the original string (or StringBuilder)
        index - the index in the original string to start matching against
        substring - the substring to match at the given index
      • replace

        public static java.lang.String replace​(java.lang.String inString,
                                               java.lang.String oldPattern,
                                               java.lang.String newPattern)
        Replace all occurrences of a substring within a string with another string.
        Parameters:
        inString - String to examine
        oldPattern - String to replace
        newPattern - String to insert
        Returns:
        a String with the replacements
      • delete

        public static java.lang.String delete​(java.lang.String inString,
                                              java.lang.String pattern)
        Delete all occurrences of the given substring.
        Parameters:
        inString - the original String
        pattern - the pattern to delete all occurrences of
        Returns:
        the resulting String
      • deleteAny

        public static java.lang.String deleteAny​(java.lang.String inString,
                                                 java.lang.String charsToDelete)
        Delete any character in a given String.
        Parameters:
        inString - the original String
        charsToDelete - a set of characters to delete. E.g. "az\n" will delete 'a's, 'z's and new lines.
        Returns:
        the resulting String
      • quote

        public static java.lang.String quote​(java.lang.String str)
        Quote the given String with single quotes.
        Parameters:
        str - the input String (e.g. "myString")
        Returns:
        the quoted String (e.g. "'myString'"), or null if the input was null
      • capitalize

        public static java.lang.String capitalize​(java.lang.String str)
        Capitalize a String, changing the first letter to upper case as per Character.toUpperCase(char). No other letters are changed.
        Parameters:
        str - the String to capitalize, may be null
        Returns:
        the capitalized String, null if null
      • validFileName

        public static boolean validFileName​(java.lang.String fileName)
      • validFileNameExcludingAstrix

        public static boolean validFileNameExcludingAstrix​(java.lang.String fileName)
      • toStringArray

        public static java.lang.String[] toStringArray​(java.util.Collection<java.lang.String> collection)
        Copy the given Collection into a String array. The Collection must contain String elements only.
        Parameters:
        collection - the Collection to copy
        Returns:
        the String array (null if the passed-in Collection was null)
      • tokenizeByCommaToSet

        public static java.util.Set<java.lang.String> tokenizeByCommaToSet​(java.lang.String s)
        Tokenize the specified string by commas to a set, trimming whitespace and ignoring empty tokens.
        Parameters:
        s - the string to tokenize
        Returns:
        the set of tokens
      • splitStringByCommaToArray

        public static java.lang.String[] splitStringByCommaToArray​(java.lang.String s)
        Split the specified string by commas to an array.
        Parameters:
        s - the string to split
        Returns:
        the array of split values
        See Also:
        String.split(String)
      • split

        public static java.lang.String[] split​(java.lang.String toSplit,
                                               java.lang.String delimiter)
        Split a String at the first occurrence of the delimiter. Does not include the delimiter in the result.
        Parameters:
        toSplit - the string to split
        delimiter - to split the string up with
        Returns:
        a two element array with index 0 being before the delimiter, and index 1 being after the delimiter (neither element includes the delimiter); or null if the delimiter wasn't found in the given input String
      • tokenizeToStringArray

        public static java.lang.String[] tokenizeToStringArray​(java.lang.String s,
                                                               java.lang.String delimiters)
        Tokenize the given String into a String array via a StringTokenizer. Trims tokens and omits empty tokens.

        The given delimiters string is supposed to consist of any number of delimiter characters. Each of those characters can be used to separate tokens. A delimiter is always a single character; for multi-character delimiters, consider using delimitedListToStringArray

        Parameters:
        s - the String to tokenize
        delimiters - the delimiter characters, assembled as String (each of those characters is individually considered as delimiter).
        Returns:
        an array of the tokens
        See Also:
        StringTokenizer, String.trim(), delimitedListToStringArray(java.lang.String, java.lang.String)
      • delimitedListToStringArray

        public static java.lang.String[] delimitedListToStringArray​(java.lang.String str,
                                                                    java.lang.String delimiter)
        Take a String which is a delimited list and convert it to a String array.

        A single delimiter can consists of more than one character: It will still be considered as single delimiter string, rather than as bunch of potential delimiter characters - in contrast to tokenizeToStringArray.

        Parameters:
        str - the input String
        delimiter - the delimiter between elements (this is a single delimiter, rather than a bunch individual delimiter characters)
        Returns:
        an array of the tokens in the list
        See Also:
        tokenizeToStringArray(java.lang.String, java.lang.String)
      • delimitedListToStringArray

        public static java.lang.String[] delimitedListToStringArray​(java.lang.String str,
                                                                    java.lang.String delimiter,
                                                                    java.lang.String charsToDelete)
        Take a String which is a delimited list and convert it to a String array.

        A single delimiter can consists of more than one character: It will still be considered as single delimiter string, rather than as bunch of potential delimiter characters - in contrast to tokenizeToStringArray.

        Parameters:
        str - the input String
        delimiter - the delimiter between elements (this is a single delimiter, rather than a bunch individual delimiter characters)
        charsToDelete - a set of characters to delete. Useful for deleting unwanted line breaks: e.g. "\r\n\f" will delete all new lines and line feeds in a String.
        Returns:
        an array of the tokens in the list
        See Also:
        tokenizeToStringArray(java.lang.String, java.lang.String)
      • commaDelimitedListToStringArray

        public static java.lang.String[] commaDelimitedListToStringArray​(java.lang.String str)
        Convert a CSV list into an array of Strings.
        Parameters:
        str - the input String
        Returns:
        an array of Strings, or the empty array in case of empty input
      • commaDelimitedListToSet

        public static java.util.Set<java.lang.String> commaDelimitedListToSet​(java.lang.String str)
        Convenience method to convert a CSV string list to a set. Note that this will suppress duplicates.
        Parameters:
        str - the input String
        Returns:
        a Set of String entries in the list
      • collectionToDelimitedString

        public static java.lang.String collectionToDelimitedString​(java.lang.Iterable<?> coll,
                                                                   java.lang.String delim,
                                                                   java.lang.String prefix,
                                                                   java.lang.String suffix)
        Convenience method to return a Collection as a delimited (e.g. CSV) String. E.g. useful for toString() implementations.
        Parameters:
        coll - the Collection to display
        delim - the delimiter to use (probably a ",")
        prefix - the String to start each element with
        suffix - the String to end each element with
        Returns:
        the delimited String
      • collectionToDelimitedString

        public static void collectionToDelimitedString​(java.lang.Iterable<?> coll,
                                                       java.lang.String delim,
                                                       java.lang.String prefix,
                                                       java.lang.String suffix,
                                                       java.lang.StringBuilder sb)
      • collectionToDelimitedString

        public static java.lang.String collectionToDelimitedString​(java.lang.Iterable<?> coll,
                                                                   java.lang.String delim)
        Convenience method to return a Collection as a delimited (e.g. CSV) String. E.g. useful for toString() implementations.
        Parameters:
        coll - the Collection to display
        delim - the delimiter to use (probably a ",")
        Returns:
        the delimited String
      • collectionToCommaDelimitedString

        public static java.lang.String collectionToCommaDelimitedString​(java.lang.Iterable<?> coll)
        Convenience method to return a Collection as a CSV String. E.g. useful for toString() implementations.
        Parameters:
        coll - the Collection to display
        Returns:
        the delimited String
      • arrayToDelimitedString

        public static java.lang.String arrayToDelimitedString​(java.lang.Object[] arr,
                                                              java.lang.String delim)
        Convenience method to return a String array as a delimited (e.g. CSV) String. E.g. useful for toString() implementations.
        Parameters:
        arr - the array to display
        delim - the delimiter to use (probably a ",")
        Returns:
        the delimited String
      • arrayToDelimitedString

        public static void arrayToDelimitedString​(java.lang.Object[] arr,
                                                  java.lang.String delim,
                                                  java.lang.StringBuilder sb)
      • arrayToCommaDelimitedString

        public static java.lang.String arrayToCommaDelimitedString​(java.lang.Object[] arr)
        Convenience method to return a String array as a CSV String. E.g. useful for toString() implementations.
        Parameters:
        arr - the array to display
        Returns:
        the delimited String
      • format1Decimals

        public static java.lang.String format1Decimals​(double value,
                                                       java.lang.String suffix)
        Format the double value with a single decimal points, trimming trailing '.0'.
      • toUTF8Bytes

        public static byte[] toUTF8Bytes​(java.lang.CharSequence charSequence)
      • toUTF8Bytes

        public static byte[] toUTF8Bytes​(java.lang.CharSequence charSequence,
                                         org.apache.lucene.util.BytesRefBuilder spare)
      • substring

        public static java.lang.String substring​(java.lang.String s,
                                                 int beginIndex,
                                                 int endIndex)
        Return substring(beginIndex, endIndex) that is impervious to string length.
      • isAllOrWildcard

        public static boolean isAllOrWildcard​(java.lang.String[] data)
        If an array only consists of zero or one element, which is "*" or "_all" return an empty array which is usually used as everything
      • toString

        public static java.lang.String toString​(ToXContent toXContent)
        Return a String that is the json representation of the provided ToXContent. Wraps the output into an anonymous object if needed. The content is not pretty-printed nor human readable.
      • toString

        public static java.lang.String toString​(XContentBuilder xContentBuilder)
        Returns a string representation of the builder (only applicable for text based xcontent).
        Parameters:
        xContentBuilder - builder containing an object to converted to a string
      • toString

        public static java.lang.String toString​(ToXContent toXContent,
                                                boolean pretty,
                                                boolean human)
        Return a String that is the json representation of the provided ToXContent. Wraps the output into an anonymous object if needed. Allows to control whether the outputted json needs to be pretty printed and human readable.
      • cleanTruncate

        public static java.lang.String cleanTruncate​(java.lang.String s,
                                                     int length)
        Truncates string to a length less than length. Backtracks to throw out high surrogates.
      • isNullOrEmpty

        public static boolean isNullOrEmpty​(@Nullable
                                            java.lang.String s)
      • coalesceToEmpty

        public static java.lang.String coalesceToEmpty​(@Nullable
                                                       java.lang.String s)
      • padStart

        public static java.lang.String padStart​(java.lang.String s,
                                                int minimumLength,
                                                char c)