Class Substring.Suffix

java.lang.Object
com.google.mu.util.Substring.Pattern
com.google.mu.util.Substring.Suffix
All Implemented Interfaces:
CharSequence
Enclosing class:
Substring

public static final class Substring.Suffix extends Substring.Pattern implements CharSequence
An immutable string suffix Pattern with extra utilities such as addToIfAbsent(String), removeFrom(StringBuilder), isIn(CharSequence) etc.

Can usually be declared as a constant to save allocation cost. Because Suffix implements CharSequence, it can be used almost interchangeably as a string. You can:

  • directly append a suffix as in path + SHARD_SUFFIX;
  • or append the suffix into a StringBuilder: builder.append(SHARD_SUFFIX)};
  • pass it to any CharSequence-accepting APIs such as CharMatcher.anyOf(...).matchesAnyOf(MY_PREFIX), Substring.first(':').splitThenTrim(MY_PREFIX) etc.
Since:
4.6
  • Method Details

    • isIn

      public boolean isIn(CharSequence source)
      Returns true if source ends with this suffix.
      Since:
      5.7
    • addToIfAbsent

      public String addToIfAbsent(String string)
      If string has this suffix, return it as-is; otherwise, return it with this suffix appended.
      Since:
      4.8
    • addToIfAbsent

      public boolean addToIfAbsent(StringBuilder builder)
      If builder does not already have this suffix, append this suffix to it.
      Returns:
      true if this suffix is appended
      Since:
      5.7
    • removeFrom

      public boolean removeFrom(StringBuilder builder)
      Removes this suffix from builder if it ends with the suffix.
      Returns:
      true if this suffix is removed
      Since:
      5.7
    • hideFrom

      public CharSequence hideFrom(String source)
      Returns a view of source with this suffix hidden away if present, or else returns source as is.
      Since:
      6.5
    • replaceFrom

      public boolean replaceFrom(StringBuilder builder, CharSequence replacement)
      Replaces this suffix from builder with replacement if it ends with the suffix.
      Returns:
      true if this suffix is replaced
      Since:
      5.7
    • charAt

      public char charAt(int index)
      Specified by:
      charAt in interface CharSequence
      Since:
      5.7
    • subSequence

      public String subSequence(int start, int end)
      Specified by:
      subSequence in interface CharSequence
      Since:
      5.7
    • length

      public int length()
      Returns the length of this suffix.
      Specified by:
      length in interface CharSequence
      Since:
      5.7
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
      Since:
      5.7
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
      Since:
      5.7
    • toString

      public String toString()
      Returns this suffix string.
      Specified by:
      toString in interface CharSequence
      Overrides:
      toString in class Substring.Pattern