Package org.jsoup.internal

## Class StringUtil

- java.lang.Object
- - org.jsoup.internal.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
`static class` `StringUtil.StringJoiner` A StringJoiner allows incremental / filtered joining of a set of stringable objects.

### Constructor Summary

Constructors
`StringUtil()`

### Method Summary

All Methods Static Methods Concrete Methods
`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!).