Package org.jsoup.internal

# 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`
`StringUtil.StringJoiner`
A StringJoiner allows incremental / filtered joining of a set of stringable objects.

## Constructor Summary

Constructors
Constructor
Description
`StringUtil()`

## 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`
`borrowBuilder()`
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`
`isActuallyWhitespace(int c)`
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.
`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 String`
`normaliseWhitespace(String string)`
Normalise the whitespace within this string; multiple spaces collapse to a single, and all whitespace characters (e.g.
`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(int, int)`

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