Package org.apache.commons.lang

## Class CharRange

- java.lang.Object
- - org.apache.commons.lang.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.

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### 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