public final class Strings
extends java.lang.Object
String
or CharSequence
instances.Modifier | Constructor and Description |
---|---|
private |
Strings() |
Modifier and Type | Method and Description |
---|---|
static java.lang.String |
commonPrefix(java.lang.CharSequence a,
java.lang.CharSequence b)
Returns the longest string
prefix such that a.toString().startsWith(prefix) &&
b.toString().startsWith(prefix) , taking care not to split surrogate pairs. |
static java.lang.String |
commonSuffix(java.lang.CharSequence a,
java.lang.CharSequence b)
Returns the longest string
suffix such that a.toString().endsWith(suffix) &&
b.toString().endsWith(suffix) , taking care not to split surrogate pairs. |
static java.lang.String |
emptyToNull(java.lang.String string)
Returns the given string if it is nonempty;
null otherwise. |
static boolean |
isNullOrEmpty(java.lang.String string)
Returns
true if the given string is null or is the empty string. |
static java.lang.String |
lenientFormat(java.lang.String template,
java.lang.Object... args)
Returns the given
template string with each occurrence of "%s" replaced with
the corresponding argument value from args ; or, if the placeholder and argument counts
do not match, returns a best-effort form of that string. |
private static java.lang.String |
lenientToString(java.lang.Object o) |
static java.lang.String |
nullToEmpty(java.lang.String string)
Returns the given string if it is non-null; the empty string otherwise.
|
static java.lang.String |
padEnd(java.lang.String string,
int minLength,
char padChar)
Returns a string, of length at least
minLength , consisting of string appended
with as many copies of padChar as are necessary to reach that length. |
static java.lang.String |
padStart(java.lang.String string,
int minLength,
char padChar)
Returns a string, of length at least
minLength , consisting of string prepended
with as many copies of padChar as are necessary to reach that length. |
static java.lang.String |
repeat(java.lang.String string,
int count)
Returns a string consisting of a specific number of concatenated copies of an input string.
|
(package private) static boolean |
validSurrogatePairAt(java.lang.CharSequence string,
int index)
True when a valid surrogate pair starts at the given
index in the given string . |
public static java.lang.String nullToEmpty(@CheckForNull java.lang.String string)
string
- the string to test and possibly returnstring
itself if it is non-null; ""
if it is null@CheckForNull public static java.lang.String emptyToNull(@CheckForNull java.lang.String string)
null
otherwise.string
- the string to test and possibly returnstring
itself if it is nonempty; null
if it is empty or nullpublic static boolean isNullOrEmpty(@CheckForNull java.lang.String string)
true
if the given string is null or is the empty string.
Consider normalizing your string references with nullToEmpty(java.lang.String)
. If you do, you can
use String.isEmpty()
instead of this method, and you won't need special null-safe forms
of methods like String.toUpperCase(java.util.Locale)
either. Or, if you'd like to normalize "in the other
direction," converting empty strings to null
, you can use emptyToNull(java.lang.String)
.
string
- a string reference to checktrue
if the string is null or is the empty stringpublic static java.lang.String padStart(java.lang.String string, int minLength, char padChar)
minLength
, consisting of string
prepended
with as many copies of padChar
as are necessary to reach that length. For example,
padStart("7", 3, '0')
returns "007"
padStart("2010", 3, '0')
returns "2010"
See Formatter
for a richer set of formatting capabilities.
string
- the string which should appear at the end of the resultminLength
- the minimum length the resulting string must have. Can be zero or negative, in
which case the input string is always returned.padChar
- the character to insert at the beginning of the result until the minimum length
is reachedpublic static java.lang.String padEnd(java.lang.String string, int minLength, char padChar)
minLength
, consisting of string
appended
with as many copies of padChar
as are necessary to reach that length. For example,
padEnd("4.", 5, '0')
returns "4.000"
padEnd("2010", 3, '!')
returns "2010"
See Formatter
for a richer set of formatting capabilities.
string
- the string which should appear at the beginning of the resultminLength
- the minimum length the resulting string must have. Can be zero or negative, in
which case the input string is always returned.padChar
- the character to append to the end of the result until the minimum length is
reachedpublic static java.lang.String repeat(java.lang.String string, int count)
repeat("hey", 3)
returns the string "heyheyhey"
.
Java 11+ users: use string.repeat(count)
instead.
string
- any non-null stringcount
- the number of times to repeat it; a nonnegative integerstring
repeated count
times (the empty string if
count
is zero)java.lang.IllegalArgumentException
- if count
is negativepublic static java.lang.String commonPrefix(java.lang.CharSequence a, java.lang.CharSequence b)
prefix
such that a.toString().startsWith(prefix) &&
b.toString().startsWith(prefix)
, taking care not to split surrogate pairs. If a
and
b
have no common prefix, returns the empty string.public static java.lang.String commonSuffix(java.lang.CharSequence a, java.lang.CharSequence b)
suffix
such that a.toString().endsWith(suffix) &&
b.toString().endsWith(suffix)
, taking care not to split surrogate pairs. If a
and
b
have no common suffix, returns the empty string.static boolean validSurrogatePairAt(java.lang.CharSequence string, int index)
index
in the given string
.
Out-of-range indexes return false.public static java.lang.String lenientFormat(@CheckForNull java.lang.String template, @CheckForNull java.lang.Object... args)
template
string with each occurrence of "%s"
replaced with
the corresponding argument value from args
; or, if the placeholder and argument counts
do not match, returns a best-effort form of that string. Will not throw an exception under
normal conditions.
Note: For most string-formatting needs, use String.format
,
PrintWriter.format
, and related methods. These support the
full range of format
specifiers, and alert you to usage errors by throwing IllegalFormatException
.
In certain cases, such as outputting debugging information or constructing a message to be
used for another unchecked exception, an exception during string formatting would serve little
purpose except to supplant the real information you were trying to provide. These are the cases
this method is made for; it instead generates a best-effort string with all supplied argument
values present. This method is also useful in environments such as GWT where String.format
is not available. As an example, method implementations of the Preconditions
class use this formatter, for both of the reasons just discussed.
Warning: Only the exact two-character placeholder sequence "%s"
is
recognized.
template
- a string containing zero or more "%s"
placeholder sequences. null
is treated as the four-character string "null"
.args
- the arguments to be substituted into the message template. The first argument
specified is substituted for the first occurrence of "%s"
in the template, and so
forth. A null
argument is converted to the four-character string "null"
;
non-null values are converted to strings using Object.toString()
.private static java.lang.String lenientToString(@CheckForNull java.lang.Object o)