Interface CharSequence

All Known Subinterfaces:
Name,Utf8Entry
All Known Implementing Classes:
CharBuffer,Segment,String,StringBuffer,StringBuilder

public interfaceCharSequence
ACharSequence is a readable sequence ofchar values. Thisinterface provides uniform, read-only access to many different kinds ofchar sequences.Achar value represents a character in theBasicMultilingual Plane (BMP) or a surrogate. Refer toUnicode Character Representation for details.

This interface does not refine the general contracts of theequals andhashCode methods. The result of testing two objectsthat implementCharSequence for equality is therefore, in general, undefined.Each object may be implemented by a different class, and thereis no guarantee that each class will be capable of testing its instancesfor equality with those of the other. It is therefore inappropriate to usearbitraryCharSequence instances as elements in a set or as keys ina map.

Since:
1.4
  • Method Summary

    Modifier and Type
    Method
    Description
    char
    charAt(int index)
    Returns thechar value at the specified index.
    defaultIntStream
    Returns a stream ofint zero-extending thechar valuesfrom this sequence.
    defaultIntStream
    Returns a stream of code point values from this sequence.
    static int
    Compares twoCharSequence instances lexicographically.
    default void
    getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
    Copies characters from this sequence into the given destination array.
    default boolean
    Returnstrue if this character sequence is empty.
    int
    Returns the length of this character sequence.
    subSequence(int start, int end)
    Returns aCharSequence that is a subsequence of this sequence.
    Returns a string containing the characters in this sequence in the sameorder as this sequence.
  • Method Details

    • length

      int length()
      Returns the length of this character sequence. The length is the numberof 16-bitchars in the sequence.
      Returns:
      the number ofchars in this sequence
    • charAt

      char charAt(int index)
      Returns thechar value at the specified index. An index ranges from zerotolength() - 1. The firstchar value of the sequence is atindex zero, the next at index one, and so on, as for arrayindexing.

      If thechar value specified by the index is asurrogate, the surrogate valueis returned.

      Parameters:
      index - the index of thechar value to be returned
      Returns:
      the specifiedchar value
      Throws:
      IndexOutOfBoundsException - if theindex argument is negative or not less thanlength()
    • isEmpty

      default boolean isEmpty()
      Returnstrue if this character sequence is empty.
      Implementation Requirements:
      The default implementation returns the result of callinglength() == 0.
      Returns:
      true iflength() is0, otherwisefalse
      Since:
      15
    • subSequence

      CharSequence subSequence(int start, int end)
      Returns aCharSequence that is a subsequence of this sequence.The subsequence starts with thechar value at the specified index andends with thechar value at indexend - 1. The length(inchars) of thereturned sequence isend - start, so ifstart == endthen an empty sequence is returned.
      Parameters:
      start - the start index, inclusive
      end - the end index, exclusive
      Returns:
      the specified subsequence
      Throws:
      IndexOutOfBoundsException - ifstart orend are negative, ifend is greater thanlength(), or ifstart is greater thanend
    • toString

      String toString()
      Returns a string containing the characters in this sequence in the sameorder as this sequence. The length of the string will be the length ofthis sequence.
      Overrides:
      toString in class Object
      Returns:
      a string consisting of exactly this sequence of characters
    • chars

      default IntStream chars()
      Returns a stream ofint zero-extending thechar valuesfrom this sequence. Any char which maps to asurrogate code point is passedthrough uninterpreted.

      The stream binds to this sequence when the terminal stream operationcommences (specifically, for mutable sequences the spliterator for thestream islate-binding).If the sequence is modified during that operation then the result isundefined.

      Returns:
      an IntStream of char values from this sequence
      Since:
      1.8
    • codePoints

      default IntStream codePoints()
      Returns a stream of code point values from this sequence. Any surrogatepairs encountered in the sequence are combined as if byCharacter.toCodePoint and the result is passedto the stream. Any other code units, including ordinary BMP characters,unpaired surrogates, and undefined code units, are zero-extended toint values which are then passed to the stream.

      The stream binds to this sequence when the terminal stream operationcommences (specifically, for mutable sequences the spliterator for thestream islate-binding).If the sequence is modified during that operation then the result isundefined.

      Returns:
      an IntStream of Unicode code points from this sequence
      Since:
      1.8
    • compare

      static int compare(CharSequence cs1,CharSequence cs2)
      Compares twoCharSequence instances lexicographically. Returns anegative value, zero, or a positive value if the first sequence is lexicographicallyless than, equal to, or greater than the second, respectively.

      The lexicographical ordering ofCharSequence is defined as follows.Consider aCharSequencecs of lengthlen to be asequence of char values,cs[0] tocs[len-1]. Supposekis the lowest index at which the corresponding char values from each sequencediffer. The lexicographic ordering of the sequences is determined by a numericcomparison of the char valuescs1[k] withcs2[k]. If there isno such indexk, the shorter sequence is considered lexicographicallyless than the other. If the sequences have the same length, the sequences areconsidered lexicographically equal.

      Parameters:
      cs1 - the firstCharSequence
      cs2 - the secondCharSequence
      Returns:
      the value0 if the twoCharSequence are equal; a negative integer if the firstCharSequence is lexicographically less than the second; or a positive integer if the firstCharSequence is lexicographically greater than the second.
      Since:
      11
    • getChars

      default void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
      Copies characters from this sequence into the given destination array.The first character to be copied is at indexsrcBegin; the lastcharacter to be copied is at indexsrcEnd-1. The total number ofcharacters to be copied issrcEnd-srcBegin. Thecharacters are copied into the subarray ofdst startingat indexdstBegin and ending at index:
      dstbegin + (srcEnd-srcBegin) - 1
      Implementation Requirements:
      The default implementation invokescharAt(int index) in a loopiteratingindex fromsrcBegin tosrcEnd-1.Concurrent truncation of this character sequence can throwIndexOutOfBoundsException. In this case, some characters, but notall, may be already transferred.
      Parameters:
      srcBegin - start copying at this offset.
      srcEnd - stop copying at this offset.
      dst - the array to copy the data into.
      dstBegin - offset intodst.
      Throws:
      IndexOutOfBoundsException - if any of the following is true:
      • srcBegin is negative
      • dstBegin is negative
      • thesrcBegin argument is greater than thesrcEnd argument.
      • srcEnd is greater thanthis.length().
      • dstBegin+srcEnd-srcBegin is greater thandst.length
      NullPointerException - ifdst isnull
      Since:
      25