public class UnicodeSetSpanner
extends java.lang.Object
Note: The counting, deletion, and replacement depend on alternating a UnicodeSet.SpanCondition with
its inverse. That is, the code spans, then spans for the inverse, then spans, and so on.
For the inverse, the following mapping is used:
UnicodeSet.SpanCondition.SIMPLE → UnicodeSet.SpanCondition.NOT_CONTAINEDUnicodeSet.SpanCondition.CONTAINED → UnicodeSet.SpanCondition.NOT_CONTAINEDUnicodeSet.SpanCondition.NOT_CONTAINED → UnicodeSet.SpanCondition.SIMPLE| SIMPLE | xxx[ab]cyyy |
|---|---|
| CONTAINED | xxx[abc]yyy |
| NOT_CONTAINED | [xxx]ab[cyyy] |
So here is what happens when you alternate:
| start | |xxxabcyyy |
|---|---|
| NOT_CONTAINED | xxx|abcyyy |
| CONTAINED | xxxabc|yyy |
| NOT_CONTAINED | xxxabcyyy| |
The entire string is traversed.
| Modifier and Type | Class and Description |
|---|---|
static class |
UnicodeSetSpanner.CountMethod
Options for replaceFrom and countIn to control how to treat each matched span.
|
static class |
UnicodeSetSpanner.TrimOption
Options for the trim() method
|
| Constructor and Description |
|---|
UnicodeSetSpanner(UnicodeSet source)
Create a spanner from a UnicodeSet.
|
| Modifier and Type | Method and Description |
|---|---|
int |
countIn(java.lang.CharSequence sequence)
Returns the number of matching characters found in a character sequence,
counting by CountMethod.MIN_ELEMENTS using SpanCondition.SIMPLE.
|
int |
countIn(java.lang.CharSequence sequence,
UnicodeSetSpanner.CountMethod countMethod)
Returns the number of matching characters found in a character sequence, using SpanCondition.SIMPLE.
|
int |
countIn(java.lang.CharSequence sequence,
UnicodeSetSpanner.CountMethod countMethod,
UnicodeSet.SpanCondition spanCondition)
Returns the number of matching characters found in a character sequence.
|
java.lang.String |
deleteFrom(java.lang.CharSequence sequence)
Delete all the matching spans in sequence, using SpanCondition.SIMPLE
The code alternates spans; see the class doc for
UnicodeSetSpanner for a note about boundary conditions. |
java.lang.String |
deleteFrom(java.lang.CharSequence sequence,
UnicodeSet.SpanCondition spanCondition)
Delete all matching spans in sequence, according to the spanCondition.
|
boolean |
equals(java.lang.Object other) |
UnicodeSet |
getUnicodeSet()
Returns the UnicodeSet used for processing.
|
int |
hashCode() |
java.lang.String |
replaceFrom(java.lang.CharSequence sequence,
java.lang.CharSequence replacement)
Replace all matching spans in sequence by the replacement,
counting by CountMethod.MIN_ELEMENTS using SpanCondition.SIMPLE.
|
java.lang.String |
replaceFrom(java.lang.CharSequence sequence,
java.lang.CharSequence replacement,
UnicodeSetSpanner.CountMethod countMethod)
Replace all matching spans in sequence by replacement, according to the CountMethod, using SpanCondition.SIMPLE.
|
java.lang.String |
replaceFrom(java.lang.CharSequence sequence,
java.lang.CharSequence replacement,
UnicodeSetSpanner.CountMethod countMethod,
UnicodeSet.SpanCondition spanCondition)
Replace all matching spans in sequence by replacement, according to the countMethod and spanCondition.
|
java.lang.CharSequence |
trim(java.lang.CharSequence sequence)
Returns a trimmed sequence (using CharSequence.subsequence()), that omits matching elements at the start and
end of the string, using TrimOption.BOTH and SpanCondition.SIMPLE.
|
java.lang.CharSequence |
trim(java.lang.CharSequence sequence,
UnicodeSetSpanner.TrimOption trimOption)
Returns a trimmed sequence (using CharSequence.subsequence()), that omits matching elements at the start or
end of the string, using the trimOption and SpanCondition.SIMPLE.
|
java.lang.CharSequence |
trim(java.lang.CharSequence sequence,
UnicodeSetSpanner.TrimOption trimOption,
UnicodeSet.SpanCondition spanCondition)
Returns a trimmed sequence (using CharSequence.subsequence()), that omits matching elements at the start or
end of the string, depending on the trimOption and spanCondition.
|
public UnicodeSetSpanner(UnicodeSet source)
source - the original UnicodeSetpublic UnicodeSet getUnicodeSet()
public boolean equals(java.lang.Object other)
equals in class java.lang.Objectpublic int hashCode()
hashCode in class java.lang.Objectpublic int countIn(java.lang.CharSequence sequence)
UnicodeSetSpanner for a note about boundary conditions.sequence - the sequence to count characters inpublic int countIn(java.lang.CharSequence sequence,
UnicodeSetSpanner.CountMethod countMethod)
UnicodeSetSpanner for a note about boundary conditions.sequence - the sequence to count characters incountMethod - whether to treat an entire span as a match, or individual elements as matchespublic int countIn(java.lang.CharSequence sequence,
UnicodeSetSpanner.CountMethod countMethod,
UnicodeSet.SpanCondition spanCondition)
UnicodeSetSpanner for a note about boundary conditions.sequence - the sequence to count characters incountMethod - whether to treat an entire span as a match, or individual elements as matchesspanCondition - the spanCondition to use. SIMPLE or CONTAINED means only count the elements in the span;
NOT_CONTAINED is the reverse.
public java.lang.String deleteFrom(java.lang.CharSequence sequence)
UnicodeSetSpanner for a note about boundary conditions.sequence - charsequence to replace matching spans in.public java.lang.String deleteFrom(java.lang.CharSequence sequence,
UnicodeSet.SpanCondition spanCondition)
UnicodeSetSpanner for a note about boundary conditions.sequence - charsequence to replace matching spans in.spanCondition - specify whether to modify the matching spans (CONTAINED or SIMPLE) or the non-matching (NOT_CONTAINED)public java.lang.String replaceFrom(java.lang.CharSequence sequence,
java.lang.CharSequence replacement)
UnicodeSetSpanner for a note about boundary conditions.sequence - charsequence to replace matching spans in.replacement - replacement sequence. To delete, use ""public java.lang.String replaceFrom(java.lang.CharSequence sequence,
java.lang.CharSequence replacement,
UnicodeSetSpanner.CountMethod countMethod)
UnicodeSetSpanner for a note about boundary conditions.sequence - charsequence to replace matching spans in.replacement - replacement sequence. To delete, use ""countMethod - whether to treat an entire span as a match, or individual elements as matchespublic java.lang.String replaceFrom(java.lang.CharSequence sequence,
java.lang.CharSequence replacement,
UnicodeSetSpanner.CountMethod countMethod,
UnicodeSet.SpanCondition spanCondition)
UnicodeSetSpanner for a note about boundary conditions.sequence - charsequence to replace matching spans in.replacement - replacement sequence. To delete, use ""countMethod - whether to treat an entire span as a match, or individual elements as matchesspanCondition - specify whether to modify the matching spans (CONTAINED or SIMPLE) or the non-matching
(NOT_CONTAINED)public java.lang.CharSequence trim(java.lang.CharSequence sequence)
new UnicodeSet("[ab]").trim("abacatbab")
... returns "cat".sequence - the sequence to trimpublic java.lang.CharSequence trim(java.lang.CharSequence sequence,
UnicodeSetSpanner.TrimOption trimOption)
new UnicodeSet("[ab]").trim("abacatbab", TrimOption.LEADING)
... returns "catbab".sequence - the sequence to trimtrimOption - LEADING, TRAILING, or BOTHpublic java.lang.CharSequence trim(java.lang.CharSequence sequence,
UnicodeSetSpanner.TrimOption trimOption,
UnicodeSet.SpanCondition spanCondition)
new UnicodeSet("[ab]").trim("abacatbab", TrimOption.LEADING, SpanCondition.SIMPLE)
... returns "catbab".sequence - the sequence to trimtrimOption - LEADING, TRAILING, or BOTHspanCondition - SIMPLE, CONTAINED or NOT_CONTAINEDCopyright © 2016 Unicode, Inc. and others.