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_CONTAINED
UnicodeSet.SpanCondition.CONTAINED
→ UnicodeSet.SpanCondition.NOT_CONTAINED
UnicodeSet.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.Object
public int hashCode()
hashCode
in class java.lang.Object
public 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.