public class

Strings

extends Object
java.lang.Object
   ↳ com.pnfsoftware.jeb.util.format.Strings

Class Overview

Utility methods for Strings and CharSequences.

Summary

Fields
public static final String LINESEP Line-separator for *this* platform.
Public Constructors
Strings()
Public Methods
static String camelCaseToString(String s, boolean breakOnDigits, boolean keepUppercaseAcronyms)
Convert a camel-case string to a sentence.
static String camelCaseToString(String s)
Convert a camel-case string to a sentence.
static String capitalizeFirst(String s)
Capitalize the first character of a string.
static boolean contains(String s, String... elts)
A many-element variant of String.contains.
static int count(String str, String sub, boolean countOverlaps)
Count the number of occurrences of a sub-string within a string.
static int count(String str, char ch)
Count the number of occurrences of a character within a string.
static int countNonBlankCharacters(CharSequence s)
Count the number of non blank characters in the provided string.
static String decodeASCII(byte[] bytes)
Decode a byte buffer using an ASCII decoder.
static String decodeASCII(byte[] bytes, int offset, int length)
Decode a byte buffer using an ASCII decoder.
static String[] decodeArray(String s)
Decode an encoded array of objects.
static List<String> decodeList(String s)
Decode an encoded list of objects.
static String decodeLocal(byte[] bytes, int offset, int length)
Decode a byte buffer using the local platform's default charset.
static String decodeLocal(byte[] bytes)
Decode a byte buffer using the local platform's default charset.
static Map<String, String> decodeMap(String s)
Decode an encoded map.
static String decodeUTF8(byte[] bytes)
Decode a byte buffer using a UTF-8 decoder.
static String decodeUTF8(byte[] bytes, int offset, int length)
Decode a byte buffer using a UTF-8 decoder.
static String decodeUTF8Ex(byte[] bytes, int off, int len, boolean useStandardDecoderFirst)
static String decodeUTF8Ex(byte[] bytes, boolean useStandardDecoderFirst)
static Charset determinePotentialEncoding(byte[] data, int offset, int size)
Heuristically determine the encoding of a string.
static byte[] encodeASCII(String s)
Encode a string using an ASCII encoder.
static String encodeArray(Object... array)
Encode an array of objects.
static byte[] encodeBinary(String s)
Generate a byte array consisting of the low-bytes of the input string characters.
static String encodeList(List<?> list)
Encode a list of objects.
static byte[] encodeLocal(String s)
Encode a string using the local platform's default charset.
static String encodeMap(Map<?, ?> map)
Encode a dictionary.
static byte[] encodeUTF8(String s)
Encode a string using a UTF-8 encoder.
static boolean endsWith(String s, String... elts)
A many-element variant of String.endsWith.
static boolean equals(String a, String b)
A safer version of equals(Object).
static boolean equalsIgnoreCase(String a, String b)
A safer version of equalsIgnoreCase(String)
static String f(String format, Object... args)
Format using the US locale.
static Appendable ff(Appendable sink, String format, Object... args)
A faster version of String#format(String, Object...).
static Appendable ff(Locale l, Appendable sink, String format, Object... args)
A faster version of String#format(String, Object...).
static String ff(Locale l, String format, Object... args)
A faster version of String#format(String, Object...).
static String ff(String format, Object... args)
A faster version of String#format(String, Object...).
static String firstLine(String s)
static String generate(CharSequence s, int count)
Generate a repeated string.
static String generate(char c, int count)
Generate a repeated-character string.
static int getAsciiLength(byte[] data)
static int getAsciiLength(byte[] data, int maxlen)
Retrieve the length of a potentially ASCII-encoded string.
static int getBOMSize(byte[] input)
Retrieve the size taken by the BOM or equivalent encoding mark.
static Comparator<String> getComparator()
Get a case-sensitive string comparator that treats hexadecimal sequences as numbers, and orders them accordingly, instead as simple strings.
static Comparator<String> getComparator(boolean caseSensitive, boolean scanHexadecimal)
Get a string comparator that can treat hexadecimal sequences as numbers (and order them accordingly) instead as simple strings.
static int getFastFormatFailureCount()
static int getFastFormatInvocationCount()
static int getInitialBlankSize(InputStream stream, boolean includeBOM, char... extraWhitespaceCharacters)
Retrieve the initial blank bytes at the beginning of a stream (non data)
static boolean hasBlank(CharSequence s)
Determine if a string contains one or more WSP characters.
static boolean hasLength(CharSequence s)
Determine if a string is non-null and non-empty.
static boolean hasRtl(CharSequence s)
Determine if a string contains right-to-left (RTL) characters, eg Arabic or Hebrew characters.
static String indentBlock(String blk)
Indent a buffer using a 4-space indentation.
static String indentBlock(String blk, String indent)
Indent a buffer.
static int indexOf(CharSequence text, char c)
Implementation of indexOf for CharSequence.
static int indexOf2(CharSequence text, int from, char c0, char c1)
Find the first one of two characters and return its position.
static int indexOf2(CharSequence text, char c0, char c1)
Find the first one of two characters and return its position.
static int indexOfAny(CharSequence text, Set<Character> cset)
Find the first one of any of the provided characters and return its position.
static boolean isAsciiWhitespace(int b, char... extraWhitespaceCharacters)
Determine if a character is a white-space, per the Ascii standard.
static boolean isBlank(CharSequence s)
Determine if a character sequence is null, empty, or contains WSP chars exclusively.
static boolean isContainedIn(String s, String... elts)
Determine if a string is contained in an var-arg list of provided strings.
static boolean isNumber(String text)
static boolean isPrintableCharsetHeader(byte[] headerBytes, Charset charset)
Validate if some starting bytes may be encoded with a particular charset.
static boolean isPrintableUTF8Header(byte[] headerBytes)
Validate if some starting bytes may be considered as an UTF-8 printable character header.
static boolean isWellFormedUTF8(byte[] bytes)
static boolean isWellFormedUTF8(byte[] bytes, int off, int len)
static boolean isWhitespace(char c)
Determine if a character is a white-space, per the Unicode standard.
static String join(String separator, Iterable<?> iterator)
Join the string representations of a sequence of objects using the provided separator.
static String join(String separator, String[] elts, int begin, int end)
Join a series of non-null strings.
static String join(String separator, Object... objects)
Join the string representations of a sequence of objects using the provided separator.
static String joinList(Iterable<?> objects)
Join the elements of a list using "," as a separator and surround the resulting string with square brackets.
static String joinv(String separator, String defaultValue, Object... objects)
Join the string representations of a sequence of objects using the provided separator.
static String joinv(String separator, Object... objects)
Join the string representations of a sequence of objects using the provided separator.
static int lastIndexOf2(CharSequence text, int from, char c0, char c1)
Find the last one of two characters and return its position.
static int lastIndexOf2(CharSequence text, char c0, char c1)
Find the last one of two characters and return its position.
static int lastIndexOfAny(CharSequence text, Set<Character> cset)
Find the last one of any of the provided characters and return its position.
static boolean like(String str, String pat)
Check whether an input string matches a provided.
static boolean likei(String str, String pat)
Check whether an input string matches a provided pattern.
static String ltrim(String s, char c)
Left trim on a given character.
static String ltrim(String s)
Left trim all chars less than or equal to ' '.
static void makeNewLine(StringBuilder sb)
Append a new-line character to the provided buffer unless the buffer is empty or the last character in the buffer is a new-line.
static String normalizeNewLines(String s)
Replace all newline sequences by the standard \n LF charcter.
static CharSequence pad(char c, int iter)
Repeat character c, iter times and build a CharSequence from it.
static String[] parseCommandline(String s)
Parse a string as a command line.
static String parseUrlParameter(String s, String entry)
Same as parseUrlParameters(String, String...) with a single entry.
static String[] parseUrlParameters(String s, String... entries)
Extract the parameters of a URL-like encoded string.
static String randomUniqueId()
Generate a 32-character long random unique identifier.
static String readBOM(byte[] input)
Retrieve the charset from start bytes.
static String replaceLast(String str, String target, String replacement)
Replace the last occurrence of target in str by the replacement
static String replaceNewLines(String s, String repl)
Replace newline sequences.
static String replaceWhitespaces(String str, char repl)
Efficiently replace all Unicode white-spaces by the provided char.
static void resetFastFormatCounts()
static String rtrim(String s, char c)
Right trim on a given character.
static String rtrim(String s)
Right trim all chars less than or equal to ' '.
static String safe(Object s)
Get the string representation of the parameter object, or the empty string if the object is null.
static String safe(Object s, String def)
Get the string representation of the parameter object, or the provided string if the object is null.
static String safe2(Object s, String def)
Get the string representation of the parameter object, or the provided non-empty string if the object is null or its string representation is the empty string.
static int search(CharSequence data, int index, String pattern, boolean regex, boolean caseSensitive, boolean reverseSearch)
Search for a sub-string.
static String spaces(int count)
Generate a repeated string of spaces.
static String[] splitLines(String s, boolean doNotReturnFinalEmptyLine)
Split a text into an array of Lines.
static String[] splitLines(String s)
static String[] splitall(String s, String delim)
static boolean startsWith(String s, String... elts)
A many-element variant of String.startsWith.
static String substring(String s, int begin, int end)
Flexible version of substring(int, int).
static String toString(Object o)
A safe version of String.toString.
static String toString(Object o, String defaultValue)
A safe version of String.toString.
static String trim(String s)
Trim (left and right) all chars less than or equal to ' '.
static String trimWhitespaces(String s)
Trim (left and right) all characters considered to be white-space by the Unicode standard.
static String truncate(String s, int maxLength)
Truncate a string.
static String truncateWithSuffix(String s, int maxLength, String suffix)
Truncate a string and append an optional suffix to it if it was actually truncated.
static String urldecodeUTF8(String s)
Decode a URL-encoded string.
static String urlencodeUTF8(String s)
Urlencode a string.
[Expand]
Inherited Methods
From class java.lang.Object

Fields

public static final String LINESEP

Line-separator for *this* platform.

Public Constructors

public Strings ()

Public Methods

public static String camelCaseToString (String s, boolean breakOnDigits, boolean keepUppercaseAcronyms)

Convert a camel-case string to a sentence. Example:

 ThisIsACamelCaseString    -> This is a camel case string
 ThisIsACamel44CaseString  -> This is a camel44 case string
 CountryUSA                -> Country u s a
 
 with breakOnDigits=true:
 ThisIsACamel44CaseString  -> This is a camel 44 case string
 
 with keepUppercaseAcronyms=true:
 CountryUSA                -> Country USA
 
A legal camel-case string always starts with an upper-case letter, and does not contain whitespace characters.

Parameters
s the input camel-case string
breakOnDigits if true, base-10 numbers will also be used as breaks
keepUppercaseAcronyms keep 2+ upper-case letter acronyms intact, eg: CountryUSA would be converted to Country USA instead of Country u s a
Returns
  • the result sentence
Throws
ParseException if the input string was not camel-case formatted

public static String camelCaseToString (String s)

Convert a camel-case string to a sentence. Example:

 ThisIsACamelCaseString -> This is a camel case string
 
A legal camel-case string always starts with an upper-case letter, and does not contain whitespace characters.

Parameters
s the input camel-case string
Returns
  • the result sentence
Throws
ParseException if the input string was not camel-case formatted

public static String capitalizeFirst (String s)

Capitalize the first character of a string.

public static boolean contains (String s, String... elts)

A many-element variant of String.contains.

Parameters
s the string
elts a list of string elements
Returns
  • true if the string contains at least one of the provided elements

public static int count (String str, String sub, boolean countOverlaps)

Count the number of occurrences of a sub-string within a string.

Note: a search for 'aaa' inside 'aaaaaa' would return 4, not 2!

Parameters
str haystack
sub needle
countOverlaps if true, a search for 'aaa' inside 'aaaaaa' will return 4 instead of 2
Returns
  • the number of occurrences

public static int count (String str, char ch)

Count the number of occurrences of a character within a string.

Parameters
str haystack
ch needle
Returns
  • the number of occurrences

public static int countNonBlankCharacters (CharSequence s)

Count the number of non blank characters in the provided string.

public static String decodeASCII (byte[] bytes)

Decode a byte buffer using an ASCII decoder. If the decoder is not available, the byte buffer is decoded using the system's default decoder.

Parameters
bytes mandatory byte buffer
Returns
  • the decoded string

public static String decodeASCII (byte[] bytes, int offset, int length)

Decode a byte buffer using an ASCII decoder. If the decoder is not available, the byte buffer is decoded using the system's default decoder.

Parameters
bytes byte buffer
offset start offset
length count of bytes to be decoded
Returns
  • the decoded string

public static String[] decodeArray (String s)

Decode an encoded array of objects.

Parameters
s the encoded array
Returns
  • the array of decoded strings

public static List<String> decodeList (String s)

Decode an encoded list of objects.

Parameters
s optional encoded list
Returns
  • the list of decoded strings

public static String decodeLocal (byte[] bytes, int offset, int length)

Decode a byte buffer using the local platform's default charset. This method is potentially dangerous.

Parameters
bytes byte buffer
offset start offset
length count of bytes to be decoded
Returns
  • the decoded string

public static String decodeLocal (byte[] bytes)

Decode a byte buffer using the local platform's default charset. This method is potentially dangerous.

Parameters
bytes mandatory byte buffer
Returns
  • the decoded string

public static Map<String, String> decodeMap (String s)

Decode an encoded map.

Parameters
s optional encoded map
Returns
  • the decoded map

public static String decodeUTF8 (byte[] bytes)

Decode a byte buffer using a UTF-8 decoder. If the decoder is not available, the byte buffer is decoded using the system's default decoder.

Parameters
bytes mandatory byte buffer
Returns
  • the decoded string

public static String decodeUTF8 (byte[] bytes, int offset, int length)

Decode a byte buffer using a UTF-8 decoder. If the decoder is not available, the byte buffer is decoded using the system's default decoder.

Parameters
bytes byte buffer
offset start offset
length count of bytes to be decoded
Returns
  • the decoded string

public static String decodeUTF8Ex (byte[] bytes, int off, int len, boolean useStandardDecoderFirst)

public static String decodeUTF8Ex (byte[] bytes, boolean useStandardDecoderFirst)

public static Charset determinePotentialEncoding (byte[] data, int offset, int size)

Heuristically determine the encoding of a string.

Returns
  • null if unknown, else one of ASCII, UTF-8, UTF-16, UTF-16LE, UTF-16BE, UTF-32LE or UTF-32BE

public static byte[] encodeASCII (String s)

Encode a string using an ASCII encoder. If the encoder is not available, the string is encoded using the system's default encoder. This should never happen.

Parameters
s mandatory string
Returns
  • the encoded byte buffer

public static String encodeArray (Object... array)

Encode an array of objects.

Parameters
array the array of objects
Returns
  • the encoded array as a string

public static byte[] encodeBinary (String s)

Generate a byte array consisting of the low-bytes of the input string characters.

public static String encodeList (List<?> list)

Encode a list of objects.

Parameters
list the list of objects
Returns
  • the encoded list as a string

public static byte[] encodeLocal (String s)

Encode a string using the local platform's default charset. This method is potentially dangerous.

Parameters
s mandatory string
Returns
  • the encoded byte buffer

public static String encodeMap (Map<?, ?> map)

Encode a dictionary. The encoding scheme will produce strings like: encodedKey1=encodedValue1&encodedKey2=encodedValue2&...

Parameters
map the map of key/values
Returns
  • the encoded map as a string

public static byte[] encodeUTF8 (String s)

Encode a string using a UTF-8 encoder. If the encoder is not available, the string is encoded using the system's default encoder. This should never happen.

Parameters
s mandatory string
Returns
  • the encoded byte buffer

public static boolean endsWith (String s, String... elts)

A many-element variant of String.endsWith.

Parameters
s the string
elts a list of string elements
Returns
  • true if the string ends with one of the provided elements

public static boolean equals (String a, String b)

A safer version of equals(Object).

Parameters
a first string, may be null
b second string, may be null
Returns
  • true iff both strings are non-null and equals

public static boolean equalsIgnoreCase (String a, String b)

A safer version of equalsIgnoreCase(String)

Parameters
a first string, may be null
b second string, may be null
Returns
  • true iff both strings are non-null and iequals

public static String f (String format, Object... args)

Format using the US locale.

public static Appendable ff (Appendable sink, String format, Object... args)

A faster version of String#format(String, Object...).

Parameters
sink optional recipient (if null, a new builder will be created; the formatted string is appended to the sink)
format format string
args format arguments
Returns
  • the sink, never null

public static Appendable ff (Locale l, Appendable sink, String format, Object... args)

A faster version of String#format(String, Object...).

Parameters
l locale to be used
sink optional recipient (if null, a new builder will be created; the formatted string is appended to the sink)
format format string
args format arguments
Returns
  • the sink, never null

public static String ff (Locale l, String format, Object... args)

A faster version of String#format(String, Object...).

Parameters
l locale to be used
format format string
args format arguments
Returns
  • the formatted string

public static String ff (String format, Object... args)

A faster version of String#format(String, Object...).

Parameters
format format string
args format arguments
Returns
  • the formatted string

public static String firstLine (String s)

public static String generate (CharSequence s, int count)

Generate a repeated string.

Parameters
s string to repeat
count repeat count
Returns
  • the resulting result

public static String generate (char c, int count)

Generate a repeated-character string.

Parameters
c character to repeat
count repeat count (ie, string length)
Returns
  • the string

public static int getAsciiLength (byte[] data)

Parameters
data a bybte array
Returns
  • the length of the string

public static int getAsciiLength (byte[] data, int maxlen)

Retrieve the length of a potentially ASCII-encoded string. The String characters allowed are contained CR, LF, TAB, and any character in the [0x20, 0x7E] range.

Parameters
data a byte array
Returns
  • the length of the string

public static int getBOMSize (byte[] input)

Retrieve the size taken by the BOM or equivalent encoding mark. Detect UTF-8, UTF-16 and UTF-32.

Parameters
input byte array. Be sure to have at least 4 bytes to analyze all.
Returns
  • the size taken by BOM or 0 if no BOM was detected

public static Comparator<String> getComparator ()

Get a case-sensitive string comparator that treats hexadecimal sequences as numbers, and orders them accordingly, instead as simple strings.

Refer to NumberComparator and AlphanumCharComparator for details.

Returns
  • the comparator

public static Comparator<String> getComparator (boolean caseSensitive, boolean scanHexadecimal)

Get a string comparator that can treat hexadecimal sequences as numbers (and order them accordingly) instead as simple strings.

Refer to NumberComparator and AlphanumCharComparator for details.

Returns
  • the comparator

public static int getFastFormatFailureCount ()

public static int getFastFormatInvocationCount ()

public static int getInitialBlankSize (InputStream stream, boolean includeBOM, char... extraWhitespaceCharacters)

Retrieve the initial blank bytes at the beginning of a stream (non data)

Parameters
stream input Stream to analyze
includeBOM true will consider BOM at start of the stream as an initial blank bytes
Returns
  • the number of bytes considered as blank
Throws
IOException

public static boolean hasBlank (CharSequence s)

Determine if a string contains one or more WSP characters.

public static boolean hasLength (CharSequence s)

Determine if a string is non-null and non-empty.

Returns
  • the true IFF string contains at least one character

public static boolean hasRtl (CharSequence s)

Determine if a string contains right-to-left (RTL) characters, eg Arabic or Hebrew characters.

public static String indentBlock (String blk)

Indent a buffer using a 4-space indentation.

public static String indentBlock (String blk, String indent)

Indent a buffer.

public static int indexOf (CharSequence text, char c)

Implementation of indexOf for CharSequence. Same behavior as indexOf(int).

Parameters
text string
c char
Returns
  • the index position, or -1 if not found

public static int indexOf2 (CharSequence text, int from, char c0, char c1)

Find the first one of two characters and return its position.

Parameters
text string
from start index
c0 first char
c1 second char
Returns
  • the position of the first occurrence of c0 or c1 (whichever came first), -1 if not found

public static int indexOf2 (CharSequence text, char c0, char c1)

Find the first one of two characters and return its position.

This is a 2-element implementation of indexOf(int).

Parameters
text string
c0 first char
c1 second char
Returns
  • the position of the first occurrence of c0 or c1 (whichever came first), -1 if not found

public static int indexOfAny (CharSequence text, Set<Character> cset)

Find the first one of any of the provided characters and return its position.

This is a N-element implementation of indexOf(int).

Parameters
cset a set of characters

public static boolean isAsciiWhitespace (int b, char... extraWhitespaceCharacters)

Determine if a character is a white-space, per the Ascii standard. It only processes regular space, tab, CR and LF characters.

Parameters
b the int to test
extraWhitespaceCharacters additional ascii characters considered as whitespace

public static boolean isBlank (CharSequence s)

Determine if a character sequence is null, empty, or contains WSP chars exclusively.

Parameters
s the character sequence
Returns
  • true if the sequence is null or blank

public static boolean isContainedIn (String s, String... elts)

Determine if a string is contained in an var-arg list of provided strings.

Parameters
s string to be searched
elts the list of elements
Returns
  • true iff the input string was not null and found in the list of elements

public static boolean isNumber (String text)

public static boolean isPrintableCharsetHeader (byte[] headerBytes, Charset charset)

Validate if some starting bytes may be encoded with a particular charset.

Parameters
headerBytes starting bytes. May be cropped without incidence (will be more accurate with more bytes, though).
charset Charset to detect. USe isPrintableUTF8Header(byte[]) for UTF-8.
Returns
  • true if bytes appears to represent the provided charset.

public static boolean isPrintableUTF8Header (byte[] headerBytes)

Validate if some starting bytes may be considered as an UTF-8 printable character header.

Parameters
headerBytes starting bytes. May be cropped without incidence (will be more accurate with more bytes, though).
Returns
  • true if bytes appears to represent UTF-8.

public static boolean isWellFormedUTF8 (byte[] bytes)

public static boolean isWellFormedUTF8 (byte[] bytes, int off, int len)

public static boolean isWhitespace (char c)

Determine if a character is a white-space, per the Unicode standard. This method differs from isWhitespace(char) (Java language definition of a WSP).

public static String join (String separator, Iterable<?> iterator)

Join the string representations of a sequence of objects using the provided separator. Null objects will be formatted as "null".

Parameters
separator a non-null separator
iterator an iterator
Returns
  • the resulting string

public static String join (String separator, String[] elts, int begin, int end)

Join a series of non-null strings.

Parameters
begin inclusive start index
end exclusive end index

public static String join (String separator, Object... objects)

Join the string representations of a sequence of objects using the provided separator. Null objects will be formatted as "null".

This method is error-prone and was deprecated. Use #joinv(String, Object...) joinv instead.

Parameters
separator a non-null separator
objects a sequence of objects
Returns
  • the resulting string

public static String joinList (Iterable<?> objects)

Join the elements of a list using "," as a separator and surround the resulting string with square brackets. Careful, this method does not abide to the common semantic of join.

Parameters
objects a list of objects
Returns
  • the resulting string

public static String joinv (String separator, String defaultValue, Object... objects)

Join the string representations of a sequence of objects using the provided separator.

Parameters
separator a non-null separator
defaultValue String representation for null Objects
objects an array of objects
Returns
  • the resulting string

public static String joinv (String separator, Object... objects)

Join the string representations of a sequence of objects using the provided separator. Null objects will be formatted as "null".

Parameters
separator a non-null separator
objects an array of objects
Returns
  • the resulting string

public static int lastIndexOf2 (CharSequence text, int from, char c0, char c1)

Find the last one of two characters and return its position.

Parameters
text string
from start index
c0 first char
c1 second char
Returns
  • the position of the last occurrence of c0 or c1 (whichever came first), -1 if not found

public static int lastIndexOf2 (CharSequence text, char c0, char c1)

Find the last one of two characters and return its position.

This is a 2-element implementation of lastIndexOf(int).

Parameters
text string
c0 first char
c1 second char
Returns
  • the position of the last occurrence of c0 or c1 (whichever came first), -1 if not found

public static int lastIndexOfAny (CharSequence text, Set<Character> cset)

Find the last one of any of the provided characters and return its position.

This is a N-element implementation of lastIndexOf(int).

Parameters
cset a set of characters

public static boolean like (String str, String pat)

Check whether an input string matches a provided. This method is case-sensitive.

Parameters
str a string
pat a regular expression

public static boolean likei (String str, String pat)

Check whether an input string matches a provided pattern. This method is case-insensitive.

Parameters
str a string
pat a regular expression

public static String ltrim (String s, char c)

Left trim on a given character.

public static String ltrim (String s)

Left trim all chars less than or equal to ' '. Note that this method differs from trim() which, for instance, does not consider CR or LF to be WSP.

Parameters
s a string
Returns
  • the left-trimmed string

public static void makeNewLine (StringBuilder sb)

Append a new-line character to the provided buffer unless the buffer is empty or the last character in the buffer is a new-line.

Parameters
sb a string builder

public static String normalizeNewLines (String s)

Replace all newline sequences by the standard \n LF charcter.

Parameters
s a string

public static CharSequence pad (char c, int iter)

Repeat character c, iter times and build a CharSequence from it. For example pad('0', 4) will return "0000".

Parameters
c inner character
iter times to repeat character.
Returns
  • CharSequence

public static String[] parseCommandline (String s)

Parse a string as a command line. Source: ant.jar.

Parameters
s the command line to process.
Returns
  • the command line broken into strings

public static String parseUrlParameter (String s, String entry)

Same as parseUrlParameters(String, String...) with a single entry.

Parameters
s the URL-like string to be parsed, containing a single key-value pair, eg hometype=house
Returns
  • the parameter (without decoding applied)

public static String[] parseUrlParameters (String s, String... entries)

Extract the parameters of a URL-like encoded string. No decoding is taking place. Example:

 - s: "type=home&subtype=house&[another_key]=[another_value]"
 - entries: "type", "subtype"
 - returns: ["home", "house"]
 

Parameters
s the string to be parsed
entries the entries, whose count must match the number of key-value pairs
Returns
  • the list of parameters, as they were (ie, without any decoding applied)

public static String randomUniqueId ()

Generate a 32-character long random unique identifier. The UID returned consists of the digits 0 to 9 and letters a to f (lower-case).

public static String readBOM (byte[] input)

Retrieve the charset from start bytes. Detect UTF-8, UTF-16LE/BE and UTF-32LE-BE.

Parameters
input first bytes of a string
Returns
  • the detected charset or null if no BOM was detected.

public static String replaceLast (String str, String target, String replacement)

Replace the last occurrence of target in str by the replacement

Parameters
str the string to search in
target the string to search for
replacement the replacement part
Returns
  • the new string with replacement instead of last target occurence or original string if target was not found

public static String replaceNewLines (String s, String repl)

Replace newline sequences. This method accepts null strings as input.

Parameters
s a string or null; in the latter case, null will be returned
repl the non-null substitution string, which must not contain new-line characters

public static String replaceWhitespaces (String str, char repl)

Efficiently replace all Unicode white-spaces by the provided char.

public static void resetFastFormatCounts ()

public static String rtrim (String s, char c)

Right trim on a given character.

public static String rtrim (String s)

Right trim all chars less than or equal to ' '. Note that this method differs from trim() which, for instance, does not consider CR or LF to be WSP.

Parameters
s a string
Returns
  • the right-trimmed string

public static String safe (Object s)

Get the string representation of the parameter object, or the empty string if the object is null.

Parameters
s an object, possibly null
Returns
  • the object toString() representation, or the empty string

public static String safe (Object s, String def)

Get the string representation of the parameter object, or the provided string if the object is null.

Parameters
s an object, possibly null
def a non-null string
Returns
  • a non-null string, possibly empty

public static String safe2 (Object s, String def)

Get the string representation of the parameter object, or the provided non-empty string if the object is null or its string representation is the empty string.

Parameters
s an object, possibly null
def a non-null, non-empty string
Returns
  • a string guaranteed to be non-empty

public static int search (CharSequence data, int index, String pattern, boolean regex, boolean caseSensitive, boolean reverseSearch)

Search for a sub-string.

Parameters
data buffer to be searched (aka, the haystack)
index in the case of a regular (forward) search, the search takes is [index,EOS); in the case of a reverse (backward) search, the search range is [0,index)
pattern text that is being searched (aka, the needle)
regex if true, the pattern will be treated as a regular expression; if the regex is invalid, it will be treated as a regular string and no error will be reported
caseSensitive search is case-sensitive
reverseSearch search is done in reverse
Returns
  • index where the substring was found, or -1 if nothing was found

public static String spaces (int count)

Generate a repeated string of spaces.

public static String[] splitLines (String s, boolean doNotReturnFinalEmptyLine)

Split a text into an array of Lines. Empty lines are returned. The final new-line character(s) are trimmed off. Works for all new lines characters (\r, \n) or sequences of characters (\r\n)

Parameters
s mandatory input string
Returns
  • the lines

public static String[] splitLines (String s)

public static String[] splitall (String s, String delim)

public static boolean startsWith (String s, String... elts)

A many-element variant of String.startsWith.

Parameters
s the string
elts a list of string elements
Returns
  • true if the string starts with one of the provided elements

public static String substring (String s, int begin, int end)

Flexible version of substring(int, int). Allow Python-like negative indexes for convenience.

Parameters
s a string
begin index in the [-s_length, +s_length] range
end index in the [-s_length, +s_length] range
Returns
  • the substring

public static String toString (Object o)

A safe version of String.toString.

Parameters
o an object, could be null
Returns
  • the String representation of the provided object, or "null"

public static String toString (Object o, String defaultValue)

A safe version of String.toString.

Parameters
o an object, could be null
defaultValue default String representation if o is null
Returns
  • the String representation of the provided object, or the default value

public static String trim (String s)

Trim (left and right) all chars less than or equal to ' '. Note that this method differs from trim() which, for instance, does not consider CR or LF to be WSP.

Parameters
s a string
Returns
  • the trimmed string

public static String trimWhitespaces (String s)

Trim (left and right) all characters considered to be white-space by the Unicode standard.

Parameters
s the input string
Returns
  • the trimmed string

public static String truncate (String s, int maxLength)

Truncate a string.

Parameters
s a string
maxLength positive length
Returns
  • the truncated string, which will contain at most `maxLength` characters

public static String truncateWithSuffix (String s, int maxLength, String suffix)

Truncate a string and append an optional suffix to it if it was actually truncated.

Parameters
s a string
maxLength positive length, which must be greater than or equal to the suffix, if one was provided
suffix optional suffix appended to a string that is actualy truncated

public static String urldecodeUTF8 (String s)

Decode a URL-encoded string.

Parameters
s the encoded string
Returns
  • the decoded string

public static String urlencodeUTF8 (String s)

Urlencode a string. The resulting string will have the following characteristics:

  • a-z, A-Z, 0-9 remain the same
  • ., -, *, _ remain the same
  • space is converted to +
  • all other characters are UTF8 encoded using the "%xx" scheme

Parameters
s the string to be encoded
Returns
  • the encoded string