Class StringUtil

java.lang.Object
org.jsoup.internal.StringUtil

public final class StringUtil extends 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 
    A StringJoiner allows incremental / filtered joining of a set of stringable objects.
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    static void
    appendNormalisedWhitespace(StringBuilder accum, String string, boolean stripLeading)
    After normalizing the whitespace within a string, appends it to a string builder.
    static StringBuilder
    Maintains cached StringBuilders in a flyweight pattern, to minimize new StringBuilder GCs.
    static boolean
    in(String needle, String... haystack)
     
    static boolean
    inSorted(String needle, String[] haystack)
     
    static boolean
    Tests if a code point is "whitespace" as defined by what it looks like.
    static boolean
    isAscii(String string)
    Tests that a String contains only ASCII characters.
    static boolean
    isBlank(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(String string)
    Tests if a string is numeric, i.e. contains only digit characters
    static boolean
    isWhitespace(int c)
    Tests if a code point is "whitespace" as defined in the HTML spec.
    static String
    join(String[] strings, String sep)
    Join an array of strings by a separator
    static String
    join(Collection<?> strings, String sep)
    Join a collection of strings by a separator
    static String
    join(Iterator<?> strings, String sep)
    Join a collection of strings by a separator
    static Collector<CharSequence,?,String>
    joining(String delimiter)
    Return a Collector similar to the one returned by Collectors.joining(CharSequence), but backed by jsoup's StringUtil.StringJoiner, which allows for more efficient garbage collection.
    static String
    normaliseWhitespace(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.
    static String
    padding(int width)
    Returns space padding (up to the default max of 30).
    static String
    padding(int width, int maxPaddingWidth)
    Returns space padding, up to a max of maxPaddingWidth.
    static String
    releaseBuilder(StringBuilder sb)
    Release a borrowed builder.
    static String
    resolve(String baseUrl, String relUrl)
    Create a new absolute URL, from a provided existing absolute URL and a relative URL component.
    static URL
    resolve(URL base, String relUrl)
    Create a new absolute URL, from a provided existing absolute URL and a relative URL component.
    static boolean
    startsWithNewline(String string)
    Tests if a string starts with a newline character

    Methods inherited from class java.lang.Object

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

    • StringUtil

      public StringUtil()
  • Method Details

    • join

      public static String join(Collection<?> strings, 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 String join(Iterator<?> strings, 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 String join(String[] strings, 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 String padding(int width)
      Returns space padding (up to the default max of 30). Use padding(int, int) to specify a different limit.
      Parameters:
      width - amount of padding desired
      Returns:
      string of spaces * width
      See Also:
    • padding

      public static String padding(int width, int maxPaddingWidth)
      Returns space padding, up to a max of maxPaddingWidth.
      Parameters:
      width - amount of padding desired
      maxPaddingWidth - maximum padding to apply. Set to -1 for unlimited.
      Returns:
      string of spaces * width
    • isBlank

      public static boolean isBlank(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
    • startsWithNewline

      public static boolean startsWithNewline(String string)
      Tests if a string starts with a newline character
      Parameters:
      string - string to test
      Returns:
      if its first character is a newline
    • isNumeric

      public static boolean isNumeric(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

      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 String normaliseWhitespace(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(StringBuilder accum, 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(String needle, String... haystack)
    • inSorted

      public static boolean inSorted(String needle, String[] haystack)
    • isAscii

      public static boolean isAscii(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 URL resolve(URL base, String relUrl) throws 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:
      MalformedURLException - if an error occurred generating the URL
    • resolve

      public static String resolve(String baseUrl, 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 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 String releaseBuilder(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!).
    • joining

      public static Collector<CharSequence,?,String> joining(String delimiter)
      Return a Collector similar to the one returned by Collectors.joining(CharSequence), but backed by jsoup's StringUtil.StringJoiner, which allows for more efficient garbage collection.
      Parameters:
      delimiter - The delimiter for separating the strings.
      Returns:
      A Collector which concatenates CharSequence elements, separated by the specified delimiter