Class StringUtil


  • public final class StringUtil
    extends java.lang.Object
    A minimal String utility class. Designed for internal jsoup use only - the API and outcome may change without notice.
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      static class  StringUtil.StringJoiner
      A StringJoiner allows incremental / filtered joining of a set of stringable objects.
    • Constructor Summary

      Constructors 
      Constructor Description
      StringUtil()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static void appendNormalisedWhitespace​(java.lang.StringBuilder accum, java.lang.String string, boolean stripLeading)
      After normalizing the whitespace within a string, appends it to a string builder.
      static java.lang.StringBuilder borrowBuilder()
      Maintains cached StringBuilders in a flyweight pattern, to minimize new StringBuilder GCs.
      static boolean in​(java.lang.String needle, java.lang.String... haystack)  
      static boolean inSorted​(java.lang.String needle, java.lang.String[] haystack)  
      static boolean isActuallyWhitespace​(int c)
      Tests if a code point is "whitespace" as defined by what it looks like.
      static boolean isAscii​(java.lang.String string)
      Tests that a String contains only ASCII characters.
      static boolean isBlank​(java.lang.String string)
      Tests if a string is blank: null, empty, or only whitespace (" ", \r\n, \t, etc)
      static boolean isInvisibleChar​(int c)  
      static boolean isNumeric​(java.lang.String string)
      Tests if a string is numeric, i.e.
      static boolean isWhitespace​(int c)
      Tests if a code point is "whitespace" as defined in the HTML spec.
      static java.lang.String join​(java.lang.String[] strings, java.lang.String sep)
      Join an array of strings by a separator
      static java.lang.String join​(java.util.Collection<?> strings, java.lang.String sep)
      Join a collection of strings by a separator
      static java.lang.String join​(java.util.Iterator<?> strings, java.lang.String sep)
      Join a collection of strings by a separator
      static java.lang.String normaliseWhitespace​(java.lang.String string)
      Normalise the whitespace within this string; multiple spaces collapse to a single, and all whitespace characters (e.g.
      static java.lang.String padding​(int width)
      Returns space padding (up to a max of 30).
      static java.lang.String releaseBuilder​(java.lang.StringBuilder sb)
      Release a borrowed builder.
      static java.lang.String resolve​(java.lang.String baseUrl, java.lang.String relUrl)
      Create a new absolute URL, from a provided existing absolute URL and a relative URL component.
      static java.net.URL resolve​(java.net.URL base, java.lang.String relUrl)
      Create a new absolute URL, from a provided existing absolute URL and a relative URL component.
      • Methods inherited from class java.lang.Object

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

      • StringUtil

        public StringUtil()
    • Method Detail

      • join

        public static java.lang.String join​(java.util.Collection<?> strings,
                                            java.lang.String sep)
        Join a collection of strings by a separator
        Parameters:
        strings - collection of string objects
        sep - string to place between strings
        Returns:
        joined string
      • join

        public static java.lang.String join​(java.util.Iterator<?> strings,
                                            java.lang.String sep)
        Join a collection of strings by a separator
        Parameters:
        strings - iterator of string objects
        sep - string to place between strings
        Returns:
        joined string
      • join

        public static java.lang.String join​(java.lang.String[] strings,
                                            java.lang.String sep)
        Join an array of strings by a separator
        Parameters:
        strings - collection of string objects
        sep - string to place between strings
        Returns:
        joined string
      • padding

        public static java.lang.String padding​(int width)
        Returns space padding (up to a max of 30).
        Parameters:
        width - amount of padding desired
        Returns:
        string of spaces * width
      • isBlank

        public static boolean isBlank​(java.lang.String string)
        Tests if a string is blank: null, empty, or only whitespace (" ", \r\n, \t, etc)
        Parameters:
        string - string to test
        Returns:
        if string is blank
      • isNumeric

        public static boolean isNumeric​(java.lang.String string)
        Tests if a string is numeric, i.e. contains only digit characters
        Parameters:
        string - string to test
        Returns:
        true if only digit chars, false if empty or null or contains non-digit chars
      • isWhitespace

        public static boolean isWhitespace​(int c)
        Tests if a code point is "whitespace" as defined in the HTML spec. Used for output HTML.
        Parameters:
        c - code point to test
        Returns:
        true if code point is whitespace, false otherwise
        See Also:
        isActuallyWhitespace(int)
      • isActuallyWhitespace

        public static boolean isActuallyWhitespace​(int c)
        Tests if a code point is "whitespace" as defined by what it looks like. Used for Element.text etc.
        Parameters:
        c - code point to test
        Returns:
        true if code point is whitespace, false otherwise
      • isInvisibleChar

        public static boolean isInvisibleChar​(int c)
      • normaliseWhitespace

        public static java.lang.String normaliseWhitespace​(java.lang.String string)
        Normalise the whitespace within this string; multiple spaces collapse to a single, and all whitespace characters (e.g. newline, tab) convert to a simple space.
        Parameters:
        string - content to normalise
        Returns:
        normalised string
      • appendNormalisedWhitespace

        public static void appendNormalisedWhitespace​(java.lang.StringBuilder accum,
                                                      java.lang.String string,
                                                      boolean stripLeading)
        After normalizing the whitespace within a string, appends it to a string builder.
        Parameters:
        accum - builder to append to
        string - string to normalize whitespace within
        stripLeading - set to true if you wish to remove any leading whitespace
      • in

        public static boolean in​(java.lang.String needle,
                                 java.lang.String... haystack)
      • inSorted

        public static boolean inSorted​(java.lang.String needle,
                                       java.lang.String[] haystack)
      • isAscii

        public static boolean isAscii​(java.lang.String string)
        Tests that a String contains only ASCII characters.
        Parameters:
        string - scanned string
        Returns:
        true if all characters are in range 0 - 127
      • resolve

        public static java.net.URL resolve​(java.net.URL base,
                                           java.lang.String relUrl)
                                    throws java.net.MalformedURLException
        Create a new absolute URL, from a provided existing absolute URL and a relative URL component.
        Parameters:
        base - the existing absolute base URL
        relUrl - the relative URL to resolve. (If it's already absolute, it will be returned)
        Returns:
        the resolved absolute URL
        Throws:
        java.net.MalformedURLException - if an error occurred generating the URL
      • resolve

        public static java.lang.String resolve​(java.lang.String baseUrl,
                                               java.lang.String relUrl)
        Create a new absolute URL, from a provided existing absolute URL and a relative URL component.
        Parameters:
        baseUrl - the existing absolute base URL
        relUrl - the relative URL to resolve. (If it's already absolute, it will be returned)
        Returns:
        an absolute URL if one was able to be generated, or the empty string if not
      • borrowBuilder

        public static java.lang.StringBuilder borrowBuilder()
        Maintains cached StringBuilders in a flyweight pattern, to minimize new StringBuilder GCs. The StringBuilder is prevented from growing too large.

        Care must be taken to release the builder once its work has been completed, with releaseBuilder(java.lang.StringBuilder)

        Returns:
        an empty StringBuilder
      • releaseBuilder

        public static java.lang.String releaseBuilder​(java.lang.StringBuilder sb)
        Release a borrowed builder. Care must be taken not to use the builder after it has been returned, as its contents may be changed by this method, or by a concurrent thread.
        Parameters:
        sb - the StringBuilder to release.
        Returns:
        the string value of the released String Builder (as an incentive to release it!).