Class CharSet
- All Implemented Interfaces:
Serializable
A set of characters.
Instances are immutable, but instances of subclasses may not be.
#ThreadSafe#
- Since:
- 1.0
- 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".A Map of the common cases used in the factory.static final CharSetA CharSet defining no characters.private static final longRequired for serialization support.The set of CharRange objects. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected voidAdd a set definition string to theCharSet.booleancontains(char ch) Does theCharSetcontain the specified characterch.booleanCompares twoCharSetobjects, returning true if they represent exactly the same set of characters defined in the same way.(package private) CharRange[]Gets the internal set as an array of CharRange objects.static CharSetgetInstance(String... setStrs) Factory method to create a new CharSet using a special syntax.inthashCode()Gets a hash code compatible with the equals method.toString()Gets a string representation of the set.
-
Field Details
-
serialVersionUID
private static final long serialVersionUIDRequired for serialization support. Lang version 2.0.- See Also:
-
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
-
set
The set of CharRange objects.
-
-
Constructor Details
-
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.
There are two ways to add a literal negation character (
^):- As the last character in a string, e.g.
CharSet.getInstance("a-z^") - As a separate element, e.g.
CharSet.getInstance("^", "a-z")
Examples using the negation character:
CharSet.getInstance("^a-c").contains('a') = false CharSet.getInstance("^a-c").contains('d') = true CharSet.getInstance("^^a-c").contains('a') = true // (only '^' is negated) CharSet.getInstance("^^a-c").contains('^') = false CharSet.getInstance("^a-cd-f").contains('d') = true CharSet.getInstance("a-c^").contains('^') = true CharSet.getInstance("^", "a-c").contains('^') = trueAll CharSet objects returned by this method will be immutable.
- Parameters:
setStrs- Strings to merge into the 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
CharRange[] 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
CharSetobjects, 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 hash code compatible with the equals method.
-
toString
Gets a string representation of the set.
-