Class CharRange

  • All Implemented Interfaces:
    java.io.Serializable, java.lang.Iterable<java.lang.Character>

    final class CharRange
    extends java.lang.Object
    implements java.lang.Iterable<java.lang.Character>, java.io.Serializable

    A contiguous range of characters, optionally negated.

    Instances are immutable.

    #ThreadSafe#

    Since:
    1.0
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      private static class  CharRange.CharacterIterator
      Character Iterator.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      (package private) static CharRange[] EMPTY_ARRAY
      Empty array.
      private char end
      The last character, inclusive, in the range.
      private java.lang.String iToString
      Cached toString.
      private boolean negated
      True if the range is everything except the characters specified.
      private static long serialVersionUID
      Required for serialization support.
      private char start
      The first character, inclusive, in the range.
    • Constructor Summary

      Constructors 
      Modifier Constructor Description
      private 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​(java.lang.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.
      java.util.Iterator<java.lang.Character> iterator()
      Returns an iterator which can be used to walk through the characters described by this range.
      java.lang.String toString()
      Gets a string representation of the character range.
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface java.lang.Iterable

        forEach, spliterator
    • Field Detail

      • serialVersionUID

        private static final long serialVersionUID
        Required for serialization support. Lang version 2.0.
        See Also:
        Serializable, Constant Field Values
      • start

        private final char start
        The first character, inclusive, in the range.
      • end

        private final char end
        The last character, inclusive, in the range.
      • negated

        private final boolean negated
        True if the range is everything except the characters specified.
      • iToString

        private transient java.lang.String iToString
        Cached toString.
      • EMPTY_ARRAY

        static final CharRange[] EMPTY_ARRAY
        Empty array.
    • Constructor Detail

      • CharRange

        private 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
      • isNot

        public static CharRange isNot​(char ch)

        Constructs a negated CharRange over a single character.

        A negated range includes everything except that defined by the single character.

        Parameters:
        ch - only character in this range
        Returns:
        the new CharRange object
        Since:
        2.5
      • isIn

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

        Constructs a CharRange over a set of 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
        Returns:
        the new CharRange object
        Since:
        2.5
      • isNotIn

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

        Constructs a negated CharRange over a set of characters.

        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
        Returns:
        the new CharRange object
        Since:
        2.5
      • 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 if 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:
        java.lang.IllegalArgumentException - if null input
      • equals

        public boolean equals​(java.lang.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 java.lang.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 java.lang.Object
        Returns:
        a suitable hashCode
      • toString

        public java.lang.String toString()

        Gets a string representation of the character range.

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

        public java.util.Iterator<java.lang.Character> iterator()

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

        #NotThreadSafe# the iterator is not thread-safe

        Specified by:
        iterator in interface java.lang.Iterable<java.lang.Character>
        Returns:
        an iterator to the chars represented by this range
        Since:
        2.5