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 ClassesModifier and TypeClassDescriptionstatic classA StringJoiner allows incremental / filtered joining of a set of stringable objects. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic voidappendNormalisedWhitespace(StringBuilder accum, String string, boolean stripLeading) After normalizing the whitespace within a string, appends it to a string builder.static StringBuilderMaintains cached StringBuilders in a flyweight pattern, to minimize new StringBuilder GCs.static Stringconcat(char first, String second) Concatenates a character and string using a pooled builder.static booleanhasHttpScheme(String value) Tests if the supplied value starts with an HTTP or HTTPS scheme.static booleanin(String needle, String... haystack) static booleaninSorted(String needle, String[] haystack) static booleanisActuallyWhitespace(int c) Tests if a code point is "whitespace" as defined by what it looks like.static booleanisAscii(String string) Tests that a String contains only ASCII characters.static booleanisAsciiLetter(char c) static booleanisBlank(@Nullable String string) Tests if a string is blank: null, empty, or only whitespace (" ", \r\n, \t, etc)static booleanisDigit(char c) static booleanisHexDigit(char c) static booleanisHttpScheme(String scheme) Tests if the supplied scheme is HTTP or HTTPS.static booleanisInvisibleChar(int c) static booleanisNumeric(String string) Tests if a string is numeric, i.e. contains only ASCII digit charactersstatic booleanisWhitespace(int c) Tests if a code point is "whitespace" as defined in the HTML spec.static Stringjoin(String[] strings, String sep) Join an array of strings by a separatorstatic Stringjoin(Collection<?> strings, String sep) Join a collection of strings by a separatorstatic Stringjoin(Iterator<?> strings, String sep) Join a collection of strings by a separatorstatic Collector<CharSequence, ?, String> joining(String delimiter) Return aCollectorsimilar to the one returned byCollectors.joining(, but backed by jsoup'sCharSequence) StringUtil.StringJoiner, which allows for more efficient garbage collection.static StringnormaliseWhitespace(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 Stringpadding(int width) Returns space padding (up to the default max of 30).static Stringpadding(int width, int maxPaddingWidth) Returns space padding, up to a max of maxPaddingWidth.static StringreleaseBuilder(StringBuilder sb) Release a borrowed builder.static voidreleaseBuilderVoid(StringBuilder sb) Releases a borrowed builder, but does not call .toString() on it.static Stringresolve(String baseUrl, String relUrl) Create a new absolute URL, from a provided existing absolute URL and a relative URL component.static URLCreate a new absolute URL, from a provided existing absolute URL and a relative URL component.static booleanstartsWithNewline(String string) Tests if a string starts with a newline characterMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Constructor Details
-
Method Details
-
join
public static String join(Collection<?> strings, String sep) Join a collection of strings by a separator- Parameters:
strings- collection of string objectssep- 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 objectssep- 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 objectssep- 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). Usepadding(to specify a different limit.int, int) - 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 desiredmaxPaddingWidth- maximum padding to apply. Set to-1for unlimited.- Returns:
- string of spaces * width
-
isBlank
public static boolean isBlank(@Nullable 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 ASCII 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 tostring- string to normalize whitespace withinstripLeading- 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
Create a new absolute URL, from a provided existing absolute URL and a relative URL component.- Parameters:
base- the existing absolute base URLrelUrl- 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 URLrelUrl- 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
-
isHttpScheme
public static boolean isHttpScheme(String scheme) Tests if the supplied scheme is HTTP or HTTPS. -
hasHttpScheme
public static boolean hasHttpScheme(String value) Tests if the supplied value starts with an HTTP or HTTPS scheme. -
concat
public static String concat(char first, String second) Concatenates a character and string using a pooled builder.- Parameters:
first- the leading charactersecond- the following string- Returns:
- the concatenated string
-
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!).
-
releaseBuilderVoid
public static void releaseBuilderVoid(StringBuilder sb) Releases a borrowed builder, but does not call .toString() on it. Useful in case you already have that string.- Parameters:
sb- the StringBuilder to release.- See Also:
-
joining
public static Collector<CharSequence,?, String> joining (String delimiter) Return aCollectorsimilar to the one returned byCollectors.joining(, but backed by jsoup'sCharSequence) StringUtil.StringJoiner, which allows for more efficient garbage collection.- Parameters:
delimiter- The delimiter for separating the strings.- Returns:
- A
Collectorwhich concatenates CharSequence elements, separated by the specified delimiter
-
isAsciiLetter
public static boolean isAsciiLetter(char c) -
isDigit
public static boolean isDigit(char c) -
isHexDigit
public static boolean isHexDigit(char c)
-