public class CharRangeSet extends Object
Constructor and Description |
---|
CharRangeSet(CharRange cs)
Constructs a new CharRangeSet with the initial set containing
only the specified charrange
|
Modifier and Type | Method and Description |
---|---|
boolean |
inRange(char c)
Consider a set of ranges A, B added as a union
(logical or) and ranges C and D added as an
intersection (logical and).
|
void |
intersection(CharRange r)
Adds the specified range as an intersection to the existing
ranges (for purposes of
inRange(char) method). |
static void |
main(String[] args) |
String |
toString() |
void |
union(CharRange r)
Adds this specified range as a union to the existing set of
ranges (for purposes of
inRange(char) method). |
public CharRangeSet(CharRange cs)
cs
- the initial charrangepublic void union(CharRange r)
inRange(char)
method).
Overlapping ranges are ok.cs
- a charrange to unite withIllegalArgumentException
- if the specified range was nullpublic void intersection(CharRange r)
inRange(char)
method).
Overlapping ranges are ok.r
- the range to addpublic boolean inRange(char c)
(A.inRange(c) || B.inRange(c) || ...) && C.inRange(c) && D.inRange(c) && ...This can be generalized to an arbitrary number of sub ranges. If intersection or union ranges don't exist, then they are not considered in the above expression. Note, the interaction may be subtle if any of the ranges (A, B, C...etc) are individually negated because in that case the inRange method for that negated range would return true if the specified character was not in that range.