Class CharRange

  • All Implemented Interfaces:
    Serializable

    public final class CharRange
    extends Object
    implements Serializable

    A contiguous range of characters, optionally negated.

    Instances are immutable.

    #ThreadSafe#

    Since:
    1.0
    Version:
    $Id: CharRange.java 1057072 2011-01-10 01:55:57Z niallp $
    See Also:
    Serialized Form
    • Constructor Summary

      Constructors 
      Constructor Description
      CharRange​(char ch)
      Constructs a CharRange over a single character.
      CharRange​(char ch, boolean negated)
      Constructs a CharRange over a single character, optionally negating the range.
      CharRange​(char start, char end)
      Constructs a CharRange over a set of characters.
      CharRange​(char start, char end, boolean negated)
      Constructs a CharRange over a set of characters, optionally negating the range.
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean contains​(char ch)
      Is the character specified contained in this range.
      boolean contains​(CharRange range)
      Are all the characters of the passed in range contained in this range.
      boolean equals​(Object obj)
      Compares two CharRange objects, returning true if they represent exactly the same range of characters defined in the same way.
      char getEnd()
      Gets the end character for this character range.
      char getStart()
      Gets the start character for this character range.
      int hashCode()
      Gets a hashCode compatible with the equals method.
      static CharRange is​(char ch)
      Constructs a CharRange over a single character.
      static CharRange isIn​(char start, char end)
      Constructs a CharRange over a set of characters.
      boolean isNegated()
      Is this CharRange negated.
      static CharRange isNot​(char ch)
      Constructs a negated CharRange over a single character.
      static CharRange isNotIn​(char start, char end)
      Constructs a negated CharRange over a set of characters.
      Iterator iterator()
      Returns an iterator which can be used to walk through the characters described by this range.
      String toString()
      Gets a string representation of the character range.
    • Constructor Detail

      • CharRange

        public CharRange​(char ch)

        Constructs a CharRange over a single character.

        Parameters:
        ch - only character in this range
      • CharRange

        public CharRange​(char ch,
                         boolean negated)

        Constructs a CharRange over a single character, optionally negating the range.

        A negated range includes everything except the specified char.

        Parameters:
        ch - only character in this range
        negated - true to express everything except the range
      • CharRange

        public CharRange​(char start,
                         char end)

        Constructs a CharRange over a set of characters.

        Parameters:
        start - first character, inclusive, in this range
        end - last character, inclusive, in this range
      • CharRange

        public CharRange​(char start,
                         char end,
                         boolean negated)

        Constructs a CharRange over a set of characters, optionally negating the range.

        A negated range includes everything except that defined by the start and end characters.

        If start and end are in the wrong order, they are reversed. Thus a-e is the same as e-a.

        Parameters:
        start - first character, inclusive, in this range
        end - last character, inclusive, in this range
        negated - true to express everything except the range
    • Method Detail

      • is

        public static CharRange is​(char ch)

        Constructs a CharRange over a single character.

        Parameters:
        ch - only character in this range
        Returns:
        the new CharRange object
        Since:
        2.5
        See Also:
        CharRange(char, char, boolean)
      • isNot

        public static CharRange isNot​(char ch)

        Constructs a negated CharRange over a single character.

        Parameters:
        ch - only character in this range
        Returns:
        the new CharRange object
        Since:
        2.5
        See Also:
        CharRange(char, char, boolean)
      • isIn

        public static CharRange isIn​(char start,
                                     char end)

        Constructs a CharRange over a set of characters.

        Parameters:
        start - first character, inclusive, in this range
        end - last character, inclusive, in this range
        Returns:
        the new CharRange object
        Since:
        2.5
        See Also:
        CharRange(char, char, boolean)
      • isNotIn

        public static CharRange isNotIn​(char start,
                                        char end)

        Constructs a negated CharRange over a set of characters.

        Parameters:
        start - first character, inclusive, in this range
        end - last character, inclusive, in this range
        Returns:
        the new CharRange object
        Since:
        2.5
        See Also:
        CharRange(char, char, boolean)
      • getStart

        public char getStart()

        Gets the start character for this character range.

        Returns:
        the start char (inclusive)
      • getEnd

        public char getEnd()

        Gets the end character for this character range.

        Returns:
        the end char (inclusive)
      • isNegated

        public boolean isNegated()

        Is this CharRange negated.

        A negated range includes everything except that defined by the start and end characters.

        Returns:
        true is negated
      • contains

        public boolean contains​(char ch)

        Is the character specified contained in this range.

        Parameters:
        ch - the character to check
        Returns:
        true if this range contains the input character
      • contains

        public boolean contains​(CharRange range)

        Are all the characters of the passed in range contained in this range.

        Parameters:
        range - the range to check against
        Returns:
        true if this range entirely contains the input range
        Throws:
        IllegalArgumentException - if null input
      • equals

        public boolean equals​(Object obj)

        Compares two CharRange objects, returning true if they represent exactly the same range of characters defined in the same way.

        Overrides:
        equals in class Object
        Parameters:
        obj - the object to compare to
        Returns:
        true if equal
      • hashCode

        public int hashCode()

        Gets a hashCode compatible with the equals method.

        Overrides:
        hashCode in class Object
        Returns:
        a suitable hashCode
      • toString

        public String toString()

        Gets a string representation of the character range.

        Overrides:
        toString in class Object
        Returns:
        string representation of this range
      • iterator

        public Iterator iterator()

        Returns an iterator which can be used to walk through the characters described by this range.

        #NotThreadSafe# the iterator is not threadsafe

        Returns:
        an iterator to the chars represented by this range
        Since:
        2.5