Class CharMatcher
- java.lang.Object
-
- com.google.common.base.CharMatcher
-
- All Implemented Interfaces:
Predicate<java.lang.Character>
- Direct Known Subclasses:
BaseEncoding.Alphabet,CharMatcher.And,CharMatcher.AnyOf,CharMatcher.BreakingWhitespace,CharMatcher.FastMatcher,CharMatcher.ForPredicate,CharMatcher.JavaDigit,CharMatcher.JavaLetter,CharMatcher.JavaLetterOrDigit,CharMatcher.JavaLowerCase,CharMatcher.JavaUpperCase,CharMatcher.Negated,CharMatcher.Or,CharMatcher.RangesMatcher
@GwtCompatible(emulated=true) public abstract class CharMatcher extends java.lang.Object implements Predicate<java.lang.Character>
Determines a true or false value for any Javacharvalue, just asPredicatedoes for anyObject. Also offers basic text processing methods based on this function. Implementations are strongly encouraged to be side-effect-free and immutable.Throughout the documentation of this class, the phrase "matching character" is used to mean "any
charvaluecfor whichthis.matches(c)returnstrue".Warning: This class deals only with
charvalues; it does not understand supplementary Unicode code points in the range0x10000to0x10FFFF. Such logical characters are encoded into aStringusing surrogate pairs, and aCharMatchertreats these just as two separate characters.Example usages:
String trimmed =
whitespace().trimFrom(userInput); if (ascii().matchesAllOf(s)) { ... }See the Guava User Guide article on
CharMatcher.- Since:
- 1.0
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static classCharMatcher.AndImplementation ofand(CharMatcher).private static classCharMatcher.AnyImplementation ofany().private static classCharMatcher.AnyOfImplementation ofanyOf(CharSequence)for three or more characters.private static classCharMatcher.AsciiImplementation ofascii().private static classCharMatcher.BitSetMatcherFast matcher using aBitSettable of matching characters.private static classCharMatcher.BreakingWhitespaceImplementation ofbreakingWhitespace().private static classCharMatcher.DigitImplementation ofdigit().(package private) static classCharMatcher.FastMatcherA matcher for which precomputation will not yield any significant benefit.private static classCharMatcher.ForPredicateImplementation offorPredicate(Predicate).private static classCharMatcher.InRangeImplementation ofinRange(char, char).private static classCharMatcher.InvisibleImplementation ofinvisible().private static classCharMatcher.IsImplementation ofis(char).private static classCharMatcher.IsEitherImplementation ofanyOf(CharSequence)for exactly two characters.private static classCharMatcher.IsNotImplementation ofisNot(char).private static classCharMatcher.JavaDigitImplementation ofjavaDigit().private static classCharMatcher.JavaIsoControlImplementation ofjavaIsoControl().private static classCharMatcher.JavaLetterImplementation ofjavaLetter().private static classCharMatcher.JavaLetterOrDigitImplementation ofjavaLetterOrDigit().private static classCharMatcher.JavaLowerCaseImplementation ofjavaLowerCase().private static classCharMatcher.JavaUpperCaseImplementation ofjavaUpperCase().(package private) static classCharMatcher.NamedFastMatcherCharMatcher.FastMatcherwhich overridestoString()with a custom name.private static classCharMatcher.NegatedImplementation ofCharMatcher.Negated.negate().(package private) static classCharMatcher.NegatedFastMatcherNegation of aCharMatcher.FastMatcher.private static classCharMatcher.NoneImplementation ofnone().private static classCharMatcher.OrImplementation ofor(CharMatcher).private static classCharMatcher.RangesMatcherImplementation that matches characters that fall within multiple ranges.private static classCharMatcher.SingleWidthImplementation ofsingleWidth().(package private) static classCharMatcher.WhitespaceImplementation ofwhitespace().
-
Field Summary
Fields Modifier and Type Field Description static CharMatcherANYDeprecated.Useany()instead.static CharMatcherASCIIDeprecated.Useascii()instead.static CharMatcherBREAKING_WHITESPACEDeprecated.UsebreakingWhitespace()instead.static CharMatcherDIGITDeprecated.Usedigit()instead.private static intDISTINCT_CHARSstatic CharMatcherINVISIBLEDeprecated.Useinvisible()instead.static CharMatcherJAVA_DIGITDeprecated.UsejavaDigit()instead.static CharMatcherJAVA_ISO_CONTROLDeprecated.UsejavaIsoControl()instead.static CharMatcherJAVA_LETTERDeprecated.UsejavaLetter()instead.static CharMatcherJAVA_LETTER_OR_DIGITDeprecated.UsejavaLetterOrDigit()instead.static CharMatcherJAVA_LOWER_CASEDeprecated.UsejavaLowerCase()instead.static CharMatcherJAVA_UPPER_CASEDeprecated.UsejavaUpperCase()instead.static CharMatcherNONEDeprecated.Usenone()instead.static CharMatcherSINGLE_WIDTHDeprecated.UsesingleWidth()instead.static CharMatcherWHITESPACEDeprecated.Usewhitespace()instead.
-
Constructor Summary
Constructors Modifier Constructor Description protectedCharMatcher()Constructor for use by subclasses.
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Deprecated Methods Modifier and Type Method Description CharMatcherand(CharMatcher other)Returns a matcher that matches any character matched by both this matcher andother.static CharMatcherany()Matches any character.static CharMatcheranyOf(java.lang.CharSequence sequence)Returns acharmatcher that matches any character present in the given character sequence.booleanapply(java.lang.Character character)Deprecated.Provided only to satisfy thePredicateinterface; usematches(char)instead.static CharMatcherascii()Determines whether a character is ASCII, meaning that its code point is less than 128.static CharMatcherbreakingWhitespace()Determines whether a character is a breaking whitespace (that is, a whitespace which can be interpreted as a break between words for formatting purposes).java.lang.StringcollapseFrom(java.lang.CharSequence sequence, char replacement)Returns a string copy of the input character sequence, with each group of consecutive characters that match this matcher replaced by a single replacement character.intcountIn(java.lang.CharSequence sequence)Returns the number of matching characters found in a character sequence.static CharMatcherdigit()Determines whether a character is a digit according to Unicode.private java.lang.StringfinishCollapseFrom(java.lang.CharSequence sequence, int start, int end, char replacement, java.lang.StringBuilder builder, boolean inMatchingGroup)static CharMatcherforPredicate(Predicate<? super java.lang.Character> predicate)Returns a matcher with identical behavior to the givenCharacter-based predicate, but which operates on primitivecharinstances instead.intindexIn(java.lang.CharSequence sequence)Returns the index of the first matching character in a character sequence, or-1if no matching character is present.intindexIn(java.lang.CharSequence sequence, int start)Returns the index of the first matching character in a character sequence, starting from a given position, or-1if no character matches after that position.static CharMatcherinRange(char startInclusive, char endInclusive)Returns acharmatcher that matches any character in a given range (both endpoints are inclusive).static CharMatcherinvisible()Determines whether a character is invisible; that is, if its Unicode category is any of SPACE_SEPARATOR, LINE_SEPARATOR, PARAGRAPH_SEPARATOR, CONTROL, FORMAT, SURROGATE, and PRIVATE_USE according to ICU4J.static CharMatcheris(char match)Returns acharmatcher that matches only one specified character.private static CharMatcher.IsEitherisEither(char c1, char c2)static CharMatcherisNot(char match)Returns acharmatcher that matches any character except the one specified.private static booleanisSmall(int totalCharacters, int tableLength)static CharMatcherjavaDigit()Determines whether a character is a digit according to Java's definition.static CharMatcherjavaIsoControl()Determines whether a character is an ISO control character as specified byCharacter.isISOControl(char).static CharMatcherjavaLetter()Determines whether a character is a letter according to Java's definition.static CharMatcherjavaLetterOrDigit()Determines whether a character is a letter or digit according to Java's definition.static CharMatcherjavaLowerCase()Determines whether a character is lower case according to Java's definition.static CharMatcherjavaUpperCase()Determines whether a character is upper case according to Java's definition.intlastIndexIn(java.lang.CharSequence sequence)Returns the index of the last matching character in a character sequence, or-1if no matching character is present.abstract booleanmatches(char c)Determines a true or false value for the given character.booleanmatchesAllOf(java.lang.CharSequence sequence)Returnstrueif a character sequence contains only matching characters.booleanmatchesAnyOf(java.lang.CharSequence sequence)Returnstrueif a character sequence contains at least one matching character.booleanmatchesNoneOf(java.lang.CharSequence sequence)Returnstrueif a character sequence contains no matching characters.CharMatchernegate()Returns a matcher that matches any character not matched by this matcher.static CharMatchernone()Matches no characters.static CharMatchernoneOf(java.lang.CharSequence sequence)Returns acharmatcher that matches any character not present in the given character sequence.CharMatcheror(CharMatcher other)Returns a matcher that matches any character matched by either this matcher orother.CharMatcherprecomputed()Returns acharmatcher functionally equivalent to this one, but which may be faster to query than the original; your mileage may vary.(package private) CharMatcherprecomputedInternal()This is the actual implementation ofprecomputed(), but we bounce calls through a method onPlatformso that we can have different behavior in GWT.private static CharMatcherprecomputedPositive(int totalCharacters, java.util.BitSet table, java.lang.String description)Helper method forprecomputedInternal()that doesn't test if the negation is cheaper.java.lang.StringremoveFrom(java.lang.CharSequence sequence)Returns a string containing all non-matching characters of a character sequence, in order.java.lang.StringreplaceFrom(java.lang.CharSequence sequence, char replacement)Returns a string copy of the input character sequence, with each character that matches this matcher replaced by a given replacement character.java.lang.StringreplaceFrom(java.lang.CharSequence sequence, java.lang.CharSequence replacement)Returns a string copy of the input character sequence, with each character that matches this matcher replaced by a given replacement sequence.java.lang.StringretainFrom(java.lang.CharSequence sequence)Returns a string containing all matching characters of a character sequence, in order.(package private) voidsetBits(java.util.BitSet table)Sets bits intablematched by this matcher.private static java.lang.StringshowCharacter(char c)Returns the Java Unicode escape sequence for the given character, in the form "ካ" where "12AB" is the four hexadecimal digits representing the 16 bits of the UTF-16 character.static CharMatchersingleWidth()Determines whether a character is single-width (not double-width).java.lang.StringtoString()Returns a string representation of thisCharMatcher, such asCharMatcher.or(WHITESPACE, JAVA_DIGIT).java.lang.StringtrimAndCollapseFrom(java.lang.CharSequence sequence, char replacement)Collapses groups of matching characters exactly ascollapseFrom(java.lang.CharSequence, char)does, except that groups of matching characters at the start or end of the sequence are removed without replacement.java.lang.StringtrimFrom(java.lang.CharSequence sequence)Returns a substring of the input character sequence that omits all characters this matcher matches from the beginning and from the end of the string.java.lang.StringtrimLeadingFrom(java.lang.CharSequence sequence)Returns a substring of the input character sequence that omits all characters this matcher matches from the beginning of the string.java.lang.StringtrimTrailingFrom(java.lang.CharSequence sequence)Returns a substring of the input character sequence that omits all characters this matcher matches from the end of the string.static CharMatcherwhitespace()Determines whether a character is whitespace according to the latest Unicode standard, as illustrated here.
-
-
-
Field Detail
-
WHITESPACE
@Deprecated public static final CharMatcher WHITESPACE
Deprecated.Usewhitespace()instead. This constant is scheduled to be removed in June 2018.Determines whether a character is whitespace according to the latest Unicode standard, as illustrated here. This is not the same definition used by other Java APIs. (See a comparison of several definitions of "whitespace".)Note: as the Unicode definition evolves, we will modify this constant to keep it up to date.
-
BREAKING_WHITESPACE
@Deprecated public static final CharMatcher BREAKING_WHITESPACE
Deprecated.UsebreakingWhitespace()instead. This constant is scheduled to be removed in June 2018.Determines whether a character is a breaking whitespace (that is, a whitespace which can be interpreted as a break between words for formatting purposes). Seewhitespace()for a discussion of that term.- Since:
- 2.0
-
ASCII
@Deprecated public static final CharMatcher ASCII
Deprecated.Useascii()instead. This constant is scheduled to be removed in June 2018.Determines whether a character is ASCII, meaning that its code point is less than 128.
-
DIGIT
@Deprecated public static final CharMatcher DIGIT
Deprecated.Usedigit()instead. This constant is scheduled to be removed in June 2018.Determines whether a character is a digit according to Unicode. If you only care to match ASCII digits, you can useinRange('0', '9').
-
JAVA_DIGIT
@Deprecated public static final CharMatcher JAVA_DIGIT
Deprecated.UsejavaDigit()instead. This constant is scheduled to be removed in June 2018.Determines whether a character is a digit according to Java's definition. If you only care to match ASCII digits, you can useinRange('0', '9').
-
JAVA_LETTER
@Deprecated public static final CharMatcher JAVA_LETTER
Deprecated.UsejavaLetter()instead. This constant is scheduled to be removed in June 2018.Determines whether a character is a letter according to Java's definition. If you only care to match letters of the Latin alphabet, you can useinRange('a', 'z').or(inRange('A', 'Z')).
-
JAVA_LETTER_OR_DIGIT
@Deprecated public static final CharMatcher JAVA_LETTER_OR_DIGIT
Deprecated.UsejavaLetterOrDigit()instead. This constant is scheduled to be removed in June 2018.Determines whether a character is a letter or digit according to Java's definition.
-
JAVA_UPPER_CASE
@Deprecated public static final CharMatcher JAVA_UPPER_CASE
Deprecated.UsejavaUpperCase()instead. This constant is scheduled to be removed in June 2018.Determines whether a character is upper case according to Java's definition.
-
JAVA_LOWER_CASE
@Deprecated public static final CharMatcher JAVA_LOWER_CASE
Deprecated.UsejavaLowerCase()instead. This constant is scheduled to be removed in June 2018.Determines whether a character is lower case according to Java's definition.
-
JAVA_ISO_CONTROL
@Deprecated public static final CharMatcher JAVA_ISO_CONTROL
Deprecated.UsejavaIsoControl()instead. This constant is scheduled to be removed in June 2018.Determines whether a character is an ISO control character as specified byCharacter.isISOControl(char).
-
INVISIBLE
@Deprecated public static final CharMatcher INVISIBLE
Deprecated.Useinvisible()instead. This constant is scheduled to be removed in June 2018.Determines whether a character is invisible; that is, if its Unicode category is any of SPACE_SEPARATOR, LINE_SEPARATOR, PARAGRAPH_SEPARATOR, CONTROL, FORMAT, SURROGATE, and PRIVATE_USE according to ICU4J.
-
SINGLE_WIDTH
@Deprecated public static final CharMatcher SINGLE_WIDTH
Deprecated.UsesingleWidth()instead. This constant is scheduled to be removed in June 2018.Determines whether a character is single-width (not double-width). When in doubt, this matcher errs on the side of returningfalse(that is, it tends to assume a character is double-width).Note: as the reference file evolves, we will modify this constant to keep it up to date.
-
ANY
@Deprecated public static final CharMatcher ANY
Deprecated.Useany()instead. This constant is scheduled to be removed in June 2018.Matches any character.
-
NONE
@Deprecated public static final CharMatcher NONE
Deprecated.Usenone()instead. This constant is scheduled to be removed in June 2018.Matches no characters.
-
DISTINCT_CHARS
private static final int DISTINCT_CHARS
- See Also:
- Constant Field Values
-
-
Method Detail
-
any
public static CharMatcher any()
Matches any character.- Since:
- 19.0 (since 1.0 as constant
ANY)
-
none
public static CharMatcher none()
Matches no characters.- Since:
- 19.0 (since 1.0 as constant
NONE)
-
whitespace
public static CharMatcher whitespace()
Determines whether a character is whitespace according to the latest Unicode standard, as illustrated here. This is not the same definition used by other Java APIs. (See a comparison of several definitions of "whitespace".)Note: as the Unicode definition evolves, we will modify this matcher to keep it up to date.
- Since:
- 19.0 (since 1.0 as constant
WHITESPACE)
-
breakingWhitespace
public static CharMatcher breakingWhitespace()
Determines whether a character is a breaking whitespace (that is, a whitespace which can be interpreted as a break between words for formatting purposes). Seewhitespace()for a discussion of that term.- Since:
- 19.0 (since 2.0 as constant
BREAKING_WHITESPACE)
-
ascii
public static CharMatcher ascii()
Determines whether a character is ASCII, meaning that its code point is less than 128.- Since:
- 19.0 (since 1.0 as constant
ASCII)
-
digit
public static CharMatcher digit()
Determines whether a character is a digit according to Unicode. If you only care to match ASCII digits, you can useinRange('0', '9').- Since:
- 19.0 (since 1.0 as constant
DIGIT)
-
javaDigit
public static CharMatcher javaDigit()
Determines whether a character is a digit according to Java's definition. If you only care to match ASCII digits, you can useinRange('0', '9').- Since:
- 19.0 (since 1.0 as constant
JAVA_DIGIT)
-
javaLetter
public static CharMatcher javaLetter()
Determines whether a character is a letter according to Java's definition. If you only care to match letters of the Latin alphabet, you can useinRange('a', 'z').or(inRange('A', 'Z')).- Since:
- 19.0 (since 1.0 as constant
JAVA_LETTER)
-
javaLetterOrDigit
public static CharMatcher javaLetterOrDigit()
Determines whether a character is a letter or digit according to Java's definition.- Since:
- 19.0 (since 1.0 as constant
JAVA_LETTER_OR_DIGIT).
-
javaUpperCase
public static CharMatcher javaUpperCase()
Determines whether a character is upper case according to Java's definition.- Since:
- 19.0 (since 1.0 as constant
JAVA_UPPER_CASE)
-
javaLowerCase
public static CharMatcher javaLowerCase()
Determines whether a character is lower case according to Java's definition.- Since:
- 19.0 (since 1.0 as constant
JAVA_LOWER_CASE)
-
javaIsoControl
public static CharMatcher javaIsoControl()
Determines whether a character is an ISO control character as specified byCharacter.isISOControl(char).- Since:
- 19.0 (since 1.0 as constant
JAVA_ISO_CONTROL)
-
invisible
public static CharMatcher invisible()
Determines whether a character is invisible; that is, if its Unicode category is any of SPACE_SEPARATOR, LINE_SEPARATOR, PARAGRAPH_SEPARATOR, CONTROL, FORMAT, SURROGATE, and PRIVATE_USE according to ICU4J.- Since:
- 19.0 (since 1.0 as constant
INVISIBLE)
-
singleWidth
public static CharMatcher singleWidth()
Determines whether a character is single-width (not double-width). When in doubt, this matcher errs on the side of returningfalse(that is, it tends to assume a character is double-width).Note: as the reference file evolves, we will modify this matcher to keep it up to date.
- Since:
- 19.0 (since 1.0 as constant
SINGLE_WIDTH)
-
is
public static CharMatcher is(char match)
Returns acharmatcher that matches only one specified character.
-
isNot
public static CharMatcher isNot(char match)
Returns acharmatcher that matches any character except the one specified.To negate another
CharMatcher, usenegate().
-
anyOf
public static CharMatcher anyOf(java.lang.CharSequence sequence)
Returns acharmatcher that matches any character present in the given character sequence.
-
noneOf
public static CharMatcher noneOf(java.lang.CharSequence sequence)
Returns acharmatcher that matches any character not present in the given character sequence.
-
inRange
public static CharMatcher inRange(char startInclusive, char endInclusive)
Returns acharmatcher that matches any character in a given range (both endpoints are inclusive). For example, to match any lowercase letter of the English alphabet, useCharMatcher.inRange('a', 'z').- Throws:
java.lang.IllegalArgumentException- ifendInclusive < startInclusive
-
forPredicate
public static CharMatcher forPredicate(Predicate<? super java.lang.Character> predicate)
Returns a matcher with identical behavior to the givenCharacter-based predicate, but which operates on primitivecharinstances instead.
-
matches
public abstract boolean matches(char c)
Determines a true or false value for the given character.
-
negate
public CharMatcher negate()
Returns a matcher that matches any character not matched by this matcher.
-
and
public CharMatcher and(CharMatcher other)
Returns a matcher that matches any character matched by both this matcher andother.
-
or
public CharMatcher or(CharMatcher other)
Returns a matcher that matches any character matched by either this matcher orother.
-
precomputed
public CharMatcher precomputed()
Returns acharmatcher functionally equivalent to this one, but which may be faster to query than the original; your mileage may vary. Precomputation takes time and is likely to be worthwhile only if the precomputed matcher is queried many thousands of times.This method has no effect (returns
this) when called in GWT: it's unclear whether a precomputed matcher is faster, but it certainly consumes more memory, which doesn't seem like a worthwhile tradeoff in a browser.
-
precomputedInternal
@GwtIncompatible CharMatcher precomputedInternal()
This is the actual implementation ofprecomputed(), but we bounce calls through a method onPlatformso that we can have different behavior in GWT.This implementation tries to be smart in a number of ways. It recognizes cases where the negation is cheaper to precompute than the matcher itself; it tries to build small hash tables for matchers that only match a few characters, and so on. In the worst-case scenario, it constructs an eight-kilobyte bit array and queries that. In many situations this produces a matcher which is faster to query than the original.
-
precomputedPositive
@GwtIncompatible private static CharMatcher precomputedPositive(int totalCharacters, java.util.BitSet table, java.lang.String description)
Helper method forprecomputedInternal()that doesn't test if the negation is cheaper.
-
isSmall
@GwtIncompatible private static boolean isSmall(int totalCharacters, int tableLength)
-
setBits
@GwtIncompatible void setBits(java.util.BitSet table)
Sets bits intablematched by this matcher.
-
matchesAnyOf
public boolean matchesAnyOf(java.lang.CharSequence sequence)
Returnstrueif a character sequence contains at least one matching character. Equivalent to!matchesNoneOf(sequence).The default implementation iterates over the sequence, invoking
matches(char)for each character, until this returnstrueor the end is reached.- Parameters:
sequence- the character sequence to examine, possibly empty- Returns:
trueif this matcher matches at least one character in the sequence- Since:
- 8.0
-
matchesAllOf
public boolean matchesAllOf(java.lang.CharSequence sequence)
Returnstrueif a character sequence contains only matching characters.The default implementation iterates over the sequence, invoking
matches(char)for each character, until this returnsfalseor the end is reached.- Parameters:
sequence- the character sequence to examine, possibly empty- Returns:
trueif this matcher matches every character in the sequence, including when the sequence is empty
-
matchesNoneOf
public boolean matchesNoneOf(java.lang.CharSequence sequence)
Returnstrueif a character sequence contains no matching characters. Equivalent to!matchesAnyOf(sequence).The default implementation iterates over the sequence, invoking
matches(char)for each character, until this returnstrueor the end is reached.- Parameters:
sequence- the character sequence to examine, possibly empty- Returns:
trueif this matcher matches no characters in the sequence, including when the sequence is empty
-
indexIn
public int indexIn(java.lang.CharSequence sequence)
Returns the index of the first matching character in a character sequence, or-1if no matching character is present.The default implementation iterates over the sequence in forward order calling
matches(char)for each character.- Parameters:
sequence- the character sequence to examine from the beginning- Returns:
- an index, or
-1if no character matches
-
indexIn
public int indexIn(java.lang.CharSequence sequence, int start)Returns the index of the first matching character in a character sequence, starting from a given position, or-1if no character matches after that position.The default implementation iterates over the sequence in forward order, beginning at
start, callingmatches(char)for each character.- Parameters:
sequence- the character sequence to examinestart- the first index to examine; must be nonnegative and no greater thansequence.length()- Returns:
- the index of the first matching character, guaranteed to be no less than
start, or-1if no character matches - Throws:
java.lang.IndexOutOfBoundsException- if start is negative or greater thansequence.length()
-
lastIndexIn
public int lastIndexIn(java.lang.CharSequence sequence)
Returns the index of the last matching character in a character sequence, or-1if no matching character is present.The default implementation iterates over the sequence in reverse order calling
matches(char)for each character.- Parameters:
sequence- the character sequence to examine from the end- Returns:
- an index, or
-1if no character matches
-
countIn
public int countIn(java.lang.CharSequence sequence)
Returns the number of matching characters found in a character sequence.
-
removeFrom
public java.lang.String removeFrom(java.lang.CharSequence sequence)
Returns a string containing all non-matching characters of a character sequence, in order. For example:
... returnsCharMatcher.is('a').removeFrom("bazaar")"bzr".
-
retainFrom
public java.lang.String retainFrom(java.lang.CharSequence sequence)
Returns a string containing all matching characters of a character sequence, in order. For example:
... returnsCharMatcher.is('a').retainFrom("bazaar")"aaa".
-
replaceFrom
public java.lang.String replaceFrom(java.lang.CharSequence sequence, char replacement)Returns a string copy of the input character sequence, with each character that matches this matcher replaced by a given replacement character. For example:
... returnsCharMatcher.is('a').replaceFrom("radar", 'o')"rodor".The default implementation uses
indexIn(CharSequence)to find the first matching character, then iterates the remainder of the sequence callingmatches(char)for each character.- Parameters:
sequence- the character sequence to replace matching characters inreplacement- the character to append to the result string in place of each matching character insequence- Returns:
- the new string
-
replaceFrom
public java.lang.String replaceFrom(java.lang.CharSequence sequence, java.lang.CharSequence replacement)Returns a string copy of the input character sequence, with each character that matches this matcher replaced by a given replacement sequence. For example:
... returnsCharMatcher.is('a').replaceFrom("yaha", "oo")"yoohoo".Note: If the replacement is a fixed string with only one character, you are better off calling
replaceFrom(CharSequence, char)directly.- Parameters:
sequence- the character sequence to replace matching characters inreplacement- the characters to append to the result string in place of each matching character insequence- Returns:
- the new string
-
trimFrom
public java.lang.String trimFrom(java.lang.CharSequence sequence)
Returns a substring of the input character sequence that omits all characters this matcher matches from the beginning and from the end of the string. For example:
... returnsCharMatcher.anyOf("ab").trimFrom("abacatbab")"cat".Note that:
... is equivalent toCharMatcher.inRange('\0', ' ').trimFrom(str)String.trim().
-
trimLeadingFrom
public java.lang.String trimLeadingFrom(java.lang.CharSequence sequence)
Returns a substring of the input character sequence that omits all characters this matcher matches from the beginning of the string. For example:
... returnsCharMatcher.anyOf("ab").trimLeadingFrom("abacatbab")"catbab".
-
trimTrailingFrom
public java.lang.String trimTrailingFrom(java.lang.CharSequence sequence)
Returns a substring of the input character sequence that omits all characters this matcher matches from the end of the string. For example:
... returnsCharMatcher.anyOf("ab").trimTrailingFrom("abacatbab")"abacat".
-
collapseFrom
public java.lang.String collapseFrom(java.lang.CharSequence sequence, char replacement)Returns a string copy of the input character sequence, with each group of consecutive characters that match this matcher replaced by a single replacement character. For example:
... returnsCharMatcher.anyOf("eko").collapseFrom("bookkeeper", '-')"b-p-r".The default implementation uses
indexIn(CharSequence)to find the first matching character, then iterates the remainder of the sequence callingmatches(char)for each character.- Parameters:
sequence- the character sequence to replace matching groups of characters inreplacement- the character to append to the result string in place of each group of matching characters insequence- Returns:
- the new string
-
trimAndCollapseFrom
public java.lang.String trimAndCollapseFrom(java.lang.CharSequence sequence, char replacement)Collapses groups of matching characters exactly ascollapseFrom(java.lang.CharSequence, char)does, except that groups of matching characters at the start or end of the sequence are removed without replacement.
-
finishCollapseFrom
private java.lang.String finishCollapseFrom(java.lang.CharSequence sequence, int start, int end, char replacement, java.lang.StringBuilder builder, boolean inMatchingGroup)
-
apply
@Deprecated public boolean apply(java.lang.Character character)
Deprecated.Provided only to satisfy thePredicateinterface; usematches(char)instead.Description copied from interface:PredicateReturns the result of applying this predicate toinput(Java 8 users, see notes in the class documentation above). This method is generally expected, but not absolutely required, to have the following properties:- Its execution does not cause any observable side effects.
- The computation is consistent with equals; that is,
Objects.equal(a, b)implies thatpredicate.apply(a) == predicate.apply(b)).
-
toString
public java.lang.String toString()
Returns a string representation of thisCharMatcher, such asCharMatcher.or(WHITESPACE, JAVA_DIGIT).- Overrides:
toStringin classjava.lang.Object
-
showCharacter
private static java.lang.String showCharacter(char c)
Returns the Java Unicode escape sequence for the given character, in the form "ካ" where "12AB" is the four hexadecimal digits representing the 16 bits of the UTF-16 character.
-
isEither
private static CharMatcher.IsEither isEither(char c1, char c2)
-
-