Class CharSet
- All Implemented Interfaces:
Serializable
A set of characters.
Instances are immutable, but instances of subclasses may not be.
#ThreadSafe#
- Since:
- 1.0
- Version:
- $Id: CharSet.java 1056988 2011-01-09 17:58:53Z niallp $
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final CharSetA CharSet defining ASCII alphabetic characters "a-zA-Z".static final CharSetA CharSet defining ASCII alphabetic characters "a-z".static final CharSetA CharSet defining ASCII alphabetic characters "A-Z".static final CharSetA CharSet defining ASCII alphabetic characters "0-9".protected static final MapA Map of the common cases used in the factory.static final CharSetA CharSet defining no characters. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidAdd a set definition string to theCharSet.booleancontains(char ch) Does theCharSetcontain the specified characterch.booleanCompares two CharSet objects, returning true if they represent exactly the same set of characters defined in the same way.Gets the internal set as an array of CharRange objects.static CharSetgetInstance(String setStr) Factory method to create a new CharSet using a special syntax.static CharSetgetInstance(String[] setStrs) Constructs a new CharSet using the set syntax.inthashCode()Gets a hashCode compatible with the equals method.toString()Gets a string representation of the set.
-
Field Details
-
EMPTY
A CharSet defining no characters.- Since:
- 2.0
-
ASCII_ALPHA
A CharSet defining ASCII alphabetic characters "a-zA-Z".- Since:
- 2.0
-
ASCII_ALPHA_LOWER
A CharSet defining ASCII alphabetic characters "a-z".- Since:
- 2.0
-
ASCII_ALPHA_UPPER
A CharSet defining ASCII alphabetic characters "A-Z".- Since:
- 2.0
-
ASCII_NUMERIC
A CharSet defining ASCII alphabetic characters "0-9".- Since:
- 2.0
-
COMMON
A Map of the common cases used in the factory. Subclasses can add more common patterns if desired- Since:
- 2.0
-
-
Constructor Details
-
CharSet
Constructs a new CharSet using the set syntax.
- Parameters:
setStr- the String describing the set, may be null- Since:
- 2.0
-
CharSet
Constructs a new CharSet using the set syntax. Each string is merged in with the set.
- Parameters:
set- Strings to merge into the initial set- Throws:
NullPointerException- if set isnull
-
-
Method Details
-
getInstance
Factory method to create a new CharSet using a special syntax.
nullor empty string ("") - set containing no characters- Single character, such as "a" - set containing just that character
- Multi character, such as "a-e" - set containing characters from one character to the other
- Negated, such as "^a" or "^a-e" - set containing all characters except those defined
- Combinations, such as "abe-g" - set containing all the characters from the individual sets
The matching order is:
- Negated multi character range, such as "^a-e"
- Ordinary multi character range, such as "a-e"
- Negated single character, such as "^a"
- Ordinary single character, such as "a"
Matching works left to right. Once a match is found the search starts again from the next character.
If the same range is defined twice using the same syntax, only one range will be kept. Thus, "a-ca-c" creates only one range of "a-c".
If the start and end of a range are in the wrong order, they are reversed. Thus "a-e" is the same as "e-a". As a result, "a-ee-a" would create only one range, as the "a-e" and "e-a" are the same.
The set of characters represented is the union of the specified ranges.
All CharSet objects returned by this method will be immutable.
- Parameters:
setStr- the String describing the set, may be null- Returns:
- a CharSet instance
- Since:
- 2.0
-
getInstance
Constructs a new CharSet using the set syntax. Each string is merged in with the set.
- Parameters:
setStrs- Strings to merge into the initial set, may be null- Returns:
- a CharSet instance
- Since:
- 2.4
-
add
Add a set definition string to the
CharSet.- Parameters:
str- set definition string
-
getCharRanges
Gets the internal set as an array of CharRange objects.
- Returns:
- an array of immutable CharRange objects
- Since:
- 2.0
-
contains
public boolean contains(char ch) Does the
CharSetcontain the specified characterch.- Parameters:
ch- the character to check for- Returns:
trueif the set contains the characters
-
equals
Compares two CharSet objects, returning true if they represent exactly the same set of characters defined in the same way.
The two sets
abcanda-care not equal according to this method. -
hashCode
public int hashCode()Gets a hashCode compatible with the equals method.
-
toString
Gets a string representation of the set.
-