Class Strings

java.lang.Object
com.google.common.base.Strings

@GwtCompatible public final class Strings extends Object
Static utility methods pertaining to String or CharSequence instances.
Since:
3.0
Author:
Kevin Bourrillion
  • Method Summary

    Modifier and Type
    Method
    Description
    static String
    Returns the longest string prefix such that a.toString().startsWith(prefix) && b.toString().startsWith(prefix), taking care not to split surrogate pairs.
    static String
    Returns the longest string suffix such that a.toString().endsWith(suffix) && b.toString().endsWith(suffix), taking care not to split surrogate pairs.
    Returns the given string if it is nonempty; null otherwise.
    static boolean
    Returns true if the given string is null or is the empty string.
    static String
    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.
    static 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 least minLength, consisting of string appended with as many copies of padChar as are necessary to reach that length.
    static String
    padStart(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 String
    repeat(String string, int count)
    Returns a string consisting of a specific number of concatenated copies of an input string.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Method Details

    • nullToEmpty

      public static String nullToEmpty(@Nullable 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

      public static @Nullable String emptyToNull(@Nullable 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(@Nullable String string)
      Returns 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).

      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 least 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.

      Parameters:
      string - the string which should appear at the end of the result
      minLength - 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 least 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.

      Parameters:
      string - the string which should appear at the beginning of the result
      minLength - 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 string
      count - the number of times to repeat it; a nonnegative integer
      Returns:
      a string containing string repeated count times (the empty string if count is zero)
      Throws:
      IllegalArgumentException - if count is negative
    • commonPrefix

      Returns the longest string 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.
      Since:
      11.0
    • commonSuffix

      Returns the longest string 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.
      Since:
      11.0
    • lenientFormat

      public static String lenientFormat(@Nullable String template, @Nullable Object @Nullable ... 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. 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.

      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. A null argument is converted to the four-character string "null"; non-null values are converted to strings using Object.toString().
      Since:
      25.1