Class StringUtil


  • public final class StringUtil
    extends java.lang.Object
    A minimal String utility class. Designed for internal jsoup use only.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private static java.util.Stack<java.lang.StringBuilder> builders  
      private static int MaxCachedBuilderSize  
      private static int MaxIdleBuilders  
      (package private) static java.lang.String[] padding  
    • 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 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
      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
    • Field Detail

      • padding

        static final java.lang.String[] padding
      • builders

        private static final java.util.Stack<java.lang.StringBuilder> builders
    • 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
        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)
      • 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 {@see #releaseBuilder}

        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!).