Class Strings
- java.lang.Object
-
- com.google.common.base.Strings
-
@GwtCompatible public final class Strings extends Object
Static utility methods pertaining toString
orCharSequence
instances.- Since:
- 3.0
- Author:
- Kevin Bourrillion
-
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static String
commonPrefix(CharSequence a, CharSequence b)
Returns the longest stringprefix
such thata.toString().startsWith(prefix) && b.toString().startsWith(prefix)
, taking care not to split surrogate pairs.static String
commonSuffix(CharSequence a, CharSequence b)
Returns the longest stringsuffix
such thata.toString().endsWith(suffix) && b.toString().endsWith(suffix)
, taking care not to split surrogate pairs.static String
emptyToNull(String string)
Returns the given string if it is nonempty;null
otherwise.static boolean
isNullOrEmpty(String string)
Returnstrue
if the given string is null or is the empty string.static String
lenientFormat(String template, @Nullable Object... args)
Returns the giventemplate
string with each occurrence of"%s"
replaced with the corresponding argument value fromargs
; or, if the placeholder and argument counts do not match, returns a best-effort form of that string.static String
nullToEmpty(String string)
Returns the given string if it is non-null; the empty string otherwise.static String
padEnd(String string, int minLength, char padChar)
Returns a string, of length at leastminLength
, consisting ofstring
appended with as many copies ofpadChar
as are necessary to reach that length.static String
padStart(String string, int minLength, char padChar)
Returns a string, of length at leastminLength
, consisting ofstring
prepended with as many copies ofpadChar
as are necessary to reach that length.static String
repeat(String string, int count)
Returns a string consisting of a specific number of concatenated copies of an input string.
-
-
-
Method Detail
-
nullToEmpty
public static String nullToEmpty(@CheckForNull String string)
Returns the given string if it is non-null; the empty string otherwise.- Parameters:
string
- the string to test and possibly return- Returns:
string
itself if it is non-null;""
if it is null
-
emptyToNull
@CheckForNull public static String emptyToNull(@CheckForNull String string)
Returns the given string if it is nonempty;null
otherwise.- Parameters:
string
- the string to test and possibly return- Returns:
string
itself if it is nonempty;null
if it is empty or null
-
isNullOrEmpty
public static boolean isNullOrEmpty(@CheckForNull String string)
Returnstrue
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 useString.isEmpty()
instead of this method, and you won't need special null-safe forms of methods likeString.toUpperCase(java.util.Locale)
either. Or, if you'd like to normalize "in the other direction," converting empty strings tonull
, you can useemptyToNull(java.lang.String)
.- Parameters:
string
- a string reference to check- Returns:
true
if the string is null or is the empty string
-
padStart
public static String padStart(String string, int minLength, char padChar)
Returns a string, of length at leastminLength
, consisting ofstring
prepended with as many copies ofpadChar
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.- Parameters:
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 reached- Returns:
- the padded string
-
padEnd
public static String padEnd(String string, int minLength, char padChar)
Returns a string, of length at leastminLength
, consisting ofstring
appended with as many copies ofpadChar
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.- Parameters:
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 reached- Returns:
- the padded string
-
repeat
@InlineMe(replacement="string.repeat(count)") public static String repeat(String string, int count)
Returns a string consisting of a specific number of concatenated copies of an input string. For example,repeat("hey", 3)
returns the string"heyheyhey"
.Java 11+ users: use
string.repeat(count)
instead.- Parameters:
string
- any non-null stringcount
- the number of times to repeat it; a nonnegative integer- Returns:
- a string containing
string
repeatedcount
times (the empty string ifcount
is zero) - Throws:
IllegalArgumentException
- ifcount
is negative
-
commonPrefix
public static String commonPrefix(CharSequence a, CharSequence b)
Returns the longest stringprefix
such thata.toString().startsWith(prefix) && b.toString().startsWith(prefix)
, taking care not to split surrogate pairs. Ifa
andb
have no common prefix, returns the empty string.- Since:
- 11.0
-
commonSuffix
public static String commonSuffix(CharSequence a, CharSequence b)
Returns the longest stringsuffix
such thata.toString().endsWith(suffix) && b.toString().endsWith(suffix)
, taking care not to split surrogate pairs. Ifa
andb
have no common suffix, returns the empty string.- Since:
- 11.0
-
lenientFormat
public static String lenientFormat(@CheckForNull String template, @CheckForNull @Nullable Object... args)
Returns the giventemplate
string with each occurrence of"%s"
replaced with the corresponding argument value fromargs
; 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 throwingIllegalFormatException
.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 thePreconditions
class use this formatter, for both of the reasons just discussed.Warning: Only the exact two-character placeholder sequence
"%s"
is recognized.- Parameters:
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. Anull
argument is converted to the four-character string"null"
; non-null values are converted to strings usingObject.toString()
.- Since:
- 25.1
-
-